0.1 flotador es mayor que 0.1 doble. Esperaba que fuera falso [duplicado]

Esta pregunta ya tiene una respuesta aquí:

Si el operador <funciona correctamente para los tipos de punto flotante, ¿por qué no podemos usarlo para las pruebas de igualdad? 5 respuestas

Dejar:

double d = 0.1;
float f = 0.1;

debe la expresión

(f > d)

regresotrue ofalse?

Empíricamente, la respuesta estrue. Sin embargo, esperaba que fuerafalse.

Como0.1 no se puede representar perfectamente en binario, mientras que el doble tiene15 a16 dígitos decimales de precisión, y float tiene solo7. Entonces, ambos son menos que0.1, mientras que el doble está más cerca de0.1.

Necesito una explicación exacta para eltrue.

Respuestas a la pregunta(7)

Su respuesta a la pregunta