Comparing float and double

This is because 1.1 is not exactly representable in binary floating-point. But 1.5 is.

As a result, the float and double representations will hold slightly different values of 1.1.

Here is exactly the difference when written out as binary floating-point:

(float) 1.1 = (0.00011001100110011001101)₂
(double)1.1 = (0.0001100110011001100110011001100110011001100110011010)₂

Thus, when you compare them (and the float version gets promoted), they will not be equal.

Leave a Comment