C/C++中的浮点数运算

代码:

 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一般判断其绝对值是否小于某个非常小的数。

posted @ 2016-05-23 11:31  hu983  阅读(1122)  评论(0编辑  收藏  举报