Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

zasto mi dodaje 000000003, i kako da se toga resim?

[es] :: Java :: zasto mi dodaje 000000003, i kako da se toga resim?

[ Pregleda: 5669 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ngj
Srbija

Član broj: 64117
Poruke: 17
*.rcub.bg.ac.yu.



Profil

icon zasto mi dodaje 000000003, i kako da se toga resim?29.08.2006. u 10:52 - pre 214 meseci
Pozdrav svima,

Kada uradim najprostije oduzimanje double vrednosti , vraća mi rezultat:

-----------------------------
Vrednosti promenljivih su...
i = 37
j = 42
x = 27.475
y = 7.22
Sabiranje...
i + j = 79
x + y = 34.695
Oduzimanje...
i - j = -5
j - i = 5
x - y = 20.255000000000003
y - x = -20.255000000000003
-----------------------------

Ako postavim da x bude dvocifren, takvih problema nema.
Da li bi mogao neko da mi odgovori zašto se to javlja, i kako da to rešim.


pozdrav i hvala unapred!



Ako sumnjate u kod, evo istog:






public class ArithmeticDemo {
public static void main(String[] args) {

//nekoliko brojeva
int i = 37;
int j = 42;
double x = 27.475;
double y = 7.22;
System.out.println("Vrednosti promenljivih su...");
System.out.println(" i = " + i);
System.out.println(" j = " + j);
System.out.println(" x = " + x);
System.out.println(" y = " + y);

//sabiranje brojeva
System.out.println("Sabiranje...");
System.out.println(" i + j = " + (i + j));
System.out.println(" x + y = " + (x + y));

//oduzimanje brojeva
System.out.println("Oduzimanje...");
System.out.println(" i - j = " + (i - j));
System.out.println(" j - i = " + (j - i));
System.out.println(" x - y = " + (x - y));
System.out.println(" y - x = " + (y - x));

//Mno`enje brojeva
System.out.println("Mnozenje...");
System.out.println(" i * j = " + (i * j));
System.out.println(" x * y = " + (x * y));

//deljenje brojeva
System.out.println("Deljenje...");
System.out.println(" i / j = " + (i / j));
System.out.println(" x / y = " + (x / y));

//Deljenje po modulu
System.out.println("Deljenje po modulu...");
System.out.println(" i % j = " + (i % j));
System.out.println(" x % y = " + (x % y));

//mesanje tipova
System.out.println("Mesanje tipova...");
System.out.println(" j + y = " + (j + y));
System.out.println(" i * x = " + (i * x));
}
}

 
Odgovor na temu

kaizen

Član broj: 83416
Poruke: 23
82.117.206.*

Sajt: rors.org


Profil

icon Re: zasto mi dodaje 000000003, i kako da se toga resim?29.08.2006. u 11:03 - pre 214 meseci
http://docs.python.org/tut/node16.html

ili ako želiš malo temeljnije:

http://docs.sun.com/source/806-3568/ncg_goldberg.html
 
Odgovor na temu

ngj
Srbija

Član broj: 64117
Poruke: 17
*.rcub.bg.ac.yu.



Profil

icon Re: zasto mi dodaje 000000003, i kako da se toga resim?29.08.2006. u 11:23 - pre 214 meseci
Ave !

Hvala na brzom odgovoru.
Generalno sam znao o cemu se radi, ali ne znam zasto VM ne resava taj problem kako treba. Trebalo bi da moze sama da se izbori sa tim, zar ne?

Sada ako ima nekoga da pomogne oko resavanja tog problema. Verovatno postoji neko jednostavnije podesavanje ili nesto drugo, da ja ne razmisljam svakog puta sta je on uradio. Ako ja moram svakog puta da se strecam, da li je on dodao 0000000x u decimalama, ....

Poz i hvala unapred svima!
 
Odgovor na temu

lukeguy
Novi Sad

Član broj: 46545
Poruke: 470
*.smin.sezampro.yu.



+8 Profil

icon Re: zasto mi dodaje 000000003, i kako da se toga resim?29.08.2006. u 21:01 - pre 214 meseci
mislim da samo predstavljanje binarnog broja u memoriji ne možeš nikako da "popraviš". eventualno možeš da koristiš veću preciznost. što se reprezentacije tiče, koristi neku metodu za formatiranje i biće sve ok.
 
Odgovor na temu

bgd2500

Član broj: 55912
Poruke: 226
82.117.193.*



+7 Profil

icon Re: zasto mi dodaje 000000003, i kako da se toga resim?01.09.2006. u 11:12 - pre 213 meseci
Koristi BigDecimal
 
Odgovor na temu

kaizen

Član broj: 83416
Poruke: 23
82.117.206.*

Sajt: rors.org


Profil

icon Re: zasto mi dodaje 000000003, i kako da se toga resim?01.09.2006. u 11:32 - pre 213 meseci
Citat:
bgd2500: Koristi BigDecimal


Samo obavezno koristi String konstruktor!
http://java.sun.com/j2se/1.5.0...Decimal.html#BigDecimal(double)


 
Odgovor na temu

ngj
Srbija

Član broj: 64117
Poruke: 17
*.rcub.bg.ac.yu.



Profil

icon Re: zasto mi dodaje 000000003, i kako da se toga resim?01.09.2006. u 12:39 - pre 213 meseci
Ave !

Jos jednom da se zahvalim na ukazanoj pomoci. Cenim to !

Pozdrav i svako dobro!
 
Odgovor na temu

[es] :: Java :: zasto mi dodaje 000000003, i kako da se toga resim?

[ Pregleda: 5669 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.