Perche' l'output di:
System.out.println(String.valueOf(10.10-7.00));
e' 3.0999999999999996?
io mi aspetto ovviamente 3.1
Perche' l'output di:
System.out.println(String.valueOf(10.10-7.00));
e' 3.0999999999999996?
io mi aspetto ovviamente 3.1
La solita questione sui numeri floating-point. Non tutti i valori possono essere rappresentati perfettamente. 7,25 o 5,1875 possono essere rappresentato perfettamente, mentre es. 8,47 o 6,124 no, saranno approssimati e molto molto vicini a tale valore ma non sarà mai esattamente quello!Originariamente inviato da __Aless#ndro###
Perche' l'output di:
System.out.println(String.valueOf(10.10-7.00));
e' 3.0999999999999996?
io mi aspetto ovviamente 3.1
A ciò si aggiunge l'eventuale errore introdotto da qualunque operazione aritmetica. E a questo si aggiunge ancora l'errore introdotto da tutti i calcoli che un metodo di conversione esegue per convertire il valore floating-point in una stringa.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet