【发布时间】:2016-09-21 12:21:35
【问题描述】:
#include<stdio.h>
void main()
{
float a = 2.3;
if(a == 2.3) {
pritnf("hello");
}
else {
printf("hi");
}
}
它在输出中打印“hi”,或者我们可以说如果条件得到假值。
#include<stdio.h>
void main()
{
float a = 2.5;
if(a == 2.5)
printf("Hello");
else
printf("Hi");
}
它打印你好。
【问题讨论】:
-
@dbush 我不同意这个骗局。假设的欺骗是关于浮点 computation 可能不精确,而这个问题是关于
float与double常量。如果a是不能表示整数常量的short或char,也会出现同样的问题。 -
那为什么会这样呢??
-
阅读floating-point-gui.de(这个网址很重要,值得记住)
标签: c