【发布时间】:2013-10-23 09:13:29
【问题描述】:
执行此步骤时,我从If 获取值实际上应该来自else
#include<stdio.h>
void main()
{
float a=0.9;
clrscr();
if(a<0.9)
printf("value from if a %f",a);
else
printf("value from else a %f",a);
getch();
}
上述代码的输出来自 If。
只需检查下面的代码,这将正确输出到其他部分
#include<stdio.h>
void main()
{
float a=0.8;
clrscr();
if(a<0.8)
printf("value from if a %f",a);
else
printf("value from else a %f",a);
getch();
}
上述代码的输出来自else。
我试过 0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9
0.7,0.9 只发给if 其他人发给else。
请解释一下这个变化。
【问题讨论】:
-
每个计算机科学家都应该知道的关于浮点的知识 (docs.sun.com/source/806-3568/ncg_goldberg.html) -- 以及stackoverflow.com/questions/4664662/…中的其他答案
标签: turbo-c