为什么c语言中不直接将实数与0相比较?
答案:1 悬赏:0 手机版
解决时间 2021-11-25 23:23
- 提问者网友:最美的风景
- 2021-11-25 11:14
为什么c语言中不直接将实数与0相比较?
最佳答案
- 五星知识达人网友:英雄的欲望
- 2021-11-25 11:42
因为浮点数可能有误差
关键问题不在这里,而在于浮点运算是不精确的,运算结果本该等0的地方,有可能实际算出是0点000几。追问既然不能与0比较,那么要怎么选取比较量呢?追答l例如
doubel a;
if ( a>-0.0000001 && a< 0.000001 )这样比较。
而 不能使用if( a == 0 )
如果是某一变量是int类型,就不需要那样了。
如 int a;
可直接使用 if( a == 0 )追问一般都是选取1e-7作为比较量吗?追答可以选用
关键问题不在这里,而在于浮点运算是不精确的,运算结果本该等0的地方,有可能实际算出是0点000几。追问既然不能与0比较,那么要怎么选取比较量呢?追答l例如
doubel a;
if ( a>-0.0000001 && a< 0.000001 )这样比较。
而 不能使用if( a == 0 )
如果是某一变量是int类型,就不需要那样了。
如 int a;
可直接使用 if( a == 0 )追问一般都是选取1e-7作为比较量吗?追答可以选用
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯