再现老问题。。。。
在网上查了一下关于怎么判断一个浮点型数是否等于 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 ,
这下我更迷糊了,用 == 看起来也能做到呀,可为什么不能这样判断?
大家还有什么更好的吗?