【发布时间】:2011-10-12 12:18:23
【问题描述】:
我有一些简单的 C 代码,输出似乎出乎意料,至少对我来说:
#include <stdio.h>
int main(void) {
float f1 = 1.0;
double f2 = 1.0;
if (f1 == f2)
puts("equal");
else
puts("unequal");
return 0;
}
由于float 和double 具有不同的精度,我预计输出为unequal,但我得到的是equal。为什么会这样?
【问题讨论】:
-
我们又来了……在尝试更多的浮点编程之前,请阅读以下文档:download.oracle.com/docs/cd/E19957-01/806-3568/…
-
请将其链接到重复的问题
-
@PaulR 我问的有点不一样!!
-
不是真的 - 这只是问题的必然结果,这已包含在 许多 重复/相关问题的答案中。
-
@paxdiablo:请不要让我拖网寻找所有其他的骗子... ;-)
标签: c