Obtención de una respuesta incorrecta en doble aritmética en Java [duplicado]
Posible duplicado:
Cálculo doble que produce un resultado impar.
Estoy escribiendo un programa en Java que trata con mucha aritmética doble. Finalmente llego al punto en el que necesito agregar 0.6666666666666666 y -0.66666666666666667. Sin embargo, la respuesta que obtengo es -3.3306690738754696E-16.
En otras palabras,
double d1 = 0.6666666666666666;
double d2 = -0.666666666666667;
System.out.println(d1 + d2);
imprime "-3.3306690738754696E-16". ¿Por qué está pasando esto?
Gracias de antemano.