代码:
1 #include <iostream>
2 #include <cstdio>
3 #include <cfloat>
4
5 using namespace std;
6
7 int main(){
8 float c = (1e15-1e-15-1e15)+1e-15;//运算结果为1e-15
9 if(c < 1e-12)
10 cout<<"zero"<<endl;
11 else
12 cout<<"no"<<endl;
13
14 if((1.0+DBL_EPSILON) != 1.0 && (1.0+DBL_EPSILON/2) == 1.0)//DEL_EPSILON为离1.0最近且大于1.0的浮点数与1.0的差值
15 cout<<"OK"<<endl;
16
17 return 0;
18 }
输出:
zero
OK
分析:
由于浮点数运算时经常会产生一定误差,因此判断浮点数是否为0一般判断其绝对值是否小于某个非常小的数。
原文链接: https://www.cnblogs.com/hu983/p/5519313.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/233829
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!