【发布时间】:2014-09-27 07:56:43
【问题描述】:
#include <stdio.h>
int main(void)
{
float c;
c = 4.7;
if(c == 4.7)
{
printf("Hello World");
}
return 0;
}
这里的问题在于 float 数据类型...要打印 Hello world 我们需要编写 (float)4.7 为什么??
【问题讨论】:
-
因为数字的浮点表示不精确。阅读此stackoverflow.com/questions/2100490/…
-
你会想阅读The Floating-Point Guide - What Every Programmer Should Know ...。问题是你没有比较你认为的自己。
-
只有那些具有精确二进制表示的浮点值才能被比较,例如:如果你做 2.5 == 2.5。
标签: c