|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2007
Città: Treviso
Messaggi: 1515
|
[Java] Problema variabili Double
Stiamo sviluppando una calcolatrice con Java, e compare sempre questo problema: quando facciamo delle somme alcune danno degli errori, per esempio 5.1 + 2.6 compare 7.66669999999 invece di 7.7. Come mai?
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
Con l'esempio che hai fatto mi sembra mooooooooolto strano. Per caso aggiungete quantità moooolto moooolto piccole? Perchè nel caso converrebbe sommare prima tutte quelle piccole ad un grande alla fine. E' probabile che se sommi 0.000000001 a 4546646 te lo perdi.
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Ma non è per il modo intrinseco con cui vengono rappresentati i valori floating point in un calcolatore?
Es.: Codice:
System.out.println("res = " + (5.1+2.6));
System.out.println("res = " + (0.1+0.6));
System.out.println("res = " + (5.0+2.0));
System.out.println("res = " + (7.0+0.7));
// output:
res = 7.699999999999999
res = 0.7
res = 7.0
res = 7.7
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2006
Messaggi: 22462
|
che io sappia è così, per avere calcoli matematici precisi è necessario usare le classi bigdecimal
__________________
amd a64x2 4400+ sk939;asus a8n-sli; 2x1gb ddr400; x850 crossfire; 2 x western digital abys 320gb|| asus g1
Se striscia fulmina, se svolazza l'ammazza |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2007
Città: Treviso
Messaggi: 1515
|
Con float abbiamo risolto tutto...grazie
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:57.




















