代码:
#include <iostream>
#include <cstdio>
#include <cfloat> using namespace std; int main(){
float c = (1e15-1e--1e15)+1e-;//运算结果为1e-15
if(c < 1e-)
cout<<"zero"<<endl;
else
cout<<"no"<<endl; if((1.0+DBL_EPSILON) != 1.0 && (1.0+DBL_EPSILON/) == 1.0)//DEL_EPSILON为离1.0最近且大于1.0的浮点数与1.0的差值
cout<<"OK"<<endl; return ;
}
输出:
zero
OK
分析:
由于浮点数运算时经常会产生一定误差,因此判断浮点数是否为0一般判断其绝对值是否小于某个非常小的数。