Perche in Java il primo codice stampa i float esatti mentre il secondo stampa da 1.4 in poi con
un piccolo errore ?

codice:
float x = 1.4f
System.out.println(x) // stampa 1.4
x += 0.2f;
System.out.println(x); // stampa 1.6
codice:
float x = 0.0f;

for(int i=0;i<10;i++){
  x += 0.2f;            
  System.out.println(x); 
}

/* stampa 
0.2
0.4
0.6
0.8
1.0
1.2
1.4000001
1.6000001
1.8000002
2.0000002
*/