【发布时间】:2012-03-06 02:39:10
【问题描述】:
我有一个程序:
int main()
{
float f = 0.0f;
int i;
for (i = 0 ; i < 10 ; i++)
f = f + 0.1f;
if (f == 1.0f)
printf("f is 1.0 \n");
else
printf("f is NOT 1.0\n");
return 0;
}
它总是打印f is NOT 1.0。我知道这与 C 中的浮点精度有关。但我不确定它到底在哪里搞砸了。有人可以解释一下为什么它不打印另一行吗?
【问题讨论】:
-
你自己回答了这个问题。这与精度有关。谷歌会给你1000.001个解释。
标签: c floating-point precision