再现老问题。。。。
在网上查了一下关于怎么判断一个浮点型数是否等于 0 ,有说不能直接有 == 来判断的,我也是迷迷糊糊的。我试用 == 来判断:
程序代码:#include<stdio.h>
int main(void)
{
float i,j;
scanf("%f",&i);
if(0 == i)
printf("Yes\n");
else
printf("No\n");
return 0;
}
他居然能判断到 1e-45 ,看起来听精确的呀,有人说要转成 <= 这种形式的,我又试了一下;
程序代码:#include<stdio.h>
#include <math.h>
int main(void)
{
float i;
if(fabs(i) <= 1e-6)
printf("Yes\n");
else
printf("No\n");
return;
}
不过这个把 1e-6 改成 1e-100 ,它也并不行,最多也只能到 1e-45 ,这下我更迷糊了,用 == 看起来也能做到呀,可为什么不能这样判断?
大家还有什么更好的吗?













