Hi
There is something annoying me for a while...
When I execute the program
Code:
int main(void)
{
double integer_part,decimal_part;
decimal_part=modf(0.46/0.01,&integer_part);
printf("%G=(%G)+(%G)\n",0.46/0.01,integer_part,decimal_part);
decimal_part=modf(0.47/0.01,&integer_part);
printf("%G=(%G)+(%G)\n",0.47/0.01,integer_part,decimal_part);
decimal_part=modf(0.48/0.01,&integer_part);
printf("%G=(%G)+(%G)\n",0.48/0.01,integer_part,decimal_part);
decimal_part=modf(0.56/0.01,&integer_part);
printf("%G=(%G)+(%G)\n",0.56/0.01,integer_part,decimal_part);
decimal_part=modf(0.57/0.01,&integer_part);
printf("%G=(%G)+(%G)\n",0.57/0.01,integer_part,decimal_part);
decimal_part=modf(0.58/0.01,&integer_part);
printf("%G=(%G)+(%G)\n",0.58/0.01,integer_part,decimal_part);
decimal_part=modf(0.59/0.01,&integer_part);
printf("%G=(%G)+(%G)\n",0.59/0.01,integer_part,decimal_part);
return 0;
}
I get as results:
46=(46)+(0)
47=(46)+(1)
48=(48)+(0)
56=(56)+(7.10543E-15)
57=(56)+(1)
58=(57)+(1)
59=(58)+(1)
But shouldn't all decimal parts just vanish? It seems to work for 0.46/0.01 and 0.48/0.01 but not for the other values. And it keeps like this for other value ranges...
Thanks