Actually i
is 0.69999999998
in it's floating representation.
When you assign i=0.7
in memory 0.7 cannot be represented in double precision
as you would have thought.
So the comparison between float
and double
leads to type promotion and in that case i
is less than 0.7
which is double.