【发布时间】:2014-02-25 13:17:17
【问题描述】:
我完全不知道输出是怎么来的
float f=1.4, t;
int d,s;
d=(int)f;
printf("d=%d\n",d);
t=f-d;
printf("t=%f\n",t);
t=t*10;
printf("t=%f\n",t);
s=(int)t;
printf("s=%d\n",s);
输出是
d=1
t=0.400000
t=4.000000
s=3
f=1.1
输出是
d=1
t=0.100000
t=1.000000
s=1
这是否与整数和浮点数在内存中的存储方式或其他方式有关?
【问题讨论】:
-
不,不是!你们不能谷歌“浮点运算意外结果”,你能...>。
-
@H2CO3 请向谷歌表示敬意,然后发布您的答案...谢谢您这么有礼貌:)
标签: c gcc type-conversion