unexpected output value of floating type value

shyam_oec's Avatar, Join Date: Nov 2007
Contributor
#include<stdio.h>
main()
{
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?
0
technosavvy's Avatar
Contributor
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
Code:
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 !!