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 respuestasDejar:
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
.