unexpected output value of floating type value

shyam_oec's Avatar, Join Date: Nov 2007
float i=65.8;
printf("i= %f",i);

with reference to the above code,
output of this prgogram is i=65.800003

as i expected to be i=65.800000
can u explain why?
technosavvy's Avatar
it is not an unexpected output...
remember everything is stored at the end of the day as binary number only...

now try representing it 65.8 in binary...u can only get close to 65.8 and never equal to 65.8...

make it
double i = 65.8
and ur problem will be resolved as the resolution of the number increases and hence u see the truncated output which is 65.8 !!