Eventuali duplicati:
How to iterate between 0.1f and 1.0f with 0.1f increments in Java?incrementi doppie in Java
Parte del mio programma deve utilizzare i valori all'interno di un ciclo while come:
0,1
0,2
0,3
...
0,9
quindi ho bisogno di fornire loro dentro quel ciclo. Ecco il codice:
double x = 0.0;
while (x<=1)
{
// increment x by 0.1 for each iteration
x += 0.1;
}
Ho bisogno dell'uscita essere esattamente:
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
Ma in realtà mi dà qualcosa di simile:
0,1
0,2
0,300000000000000000000000004
0,4
0,5
0,6
0,79999999999999999999999999
0,89999999999999999999999999
0,99999999999999999999999999
Sembra che tu stia aggiungendo il numero giusto. Non vedo perché questo non avrebbe funzionato. – Mukus
@TejaswiRana: Non funziona perché 0.1 è in realtà qualcosa come 0.0999999999999999999999 o 0.10000000000000000001. Le frazioni decimali non possono essere rappresentate senza perdite da un doppio. – cHao