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).

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));
      }
   }
}
Se lo standard permettesse la rappresentazione perfetta, questo programma stamperebbe questo output:
codice:
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
2.0
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).

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.