Prova ad eseguire questo semplicissimo programma e ti renderai facilmente conto che non tutti i numeri sono "rappresentabili perfettamente" usando lo standard IEEE 754 (lo standard che descrive il modo di rappresentazione dei numeri in virgola mobile).
Se lo standard permettesse la rappresentazione perfetta, questo programma stamperebbe questo output:codice:public class Numeri { public static void main(String[] args) { double d = 1.1d; for(int i=0; i<10; i++) { System.out.println(d + (i/10.0d)); } } }
Noterai facilmente che proprio il valore 1.2 non è rappresentabile tramite tale standard poichè il valore 0.1 non è egli stesso rappresentabile (è possibile, effettivamente, prendere il valore 1.0 e sommarlo al valore 0.2 ed ottenere con precisione il valore 1.2).codice:1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0
Una descrizione un po' più dettagliata dello standard la trovi qui:
http://it.wikipedia.org/wiki/Numero_in_virgola_mobile
http://it.wikipedia.org/wiki/IEEE_754
Ciao.![]()