在cpp中,double类型的数据是不能直接用==或者!=来比较的,因为double类型的数据在计算机中的存储是不精确的。
错误示范:
double a = 0.1323421;
double b = 0.23223;
if(a==b){
cout<<"true"<<endl;
}
else{
cout<<"false"<<endl;
}
正确做法:
double a = 0.1323421;
double b = 0.23223;
double length=0.0000001; //精度自己根据需要定义
if(fabs(a-b)<length){
cout<<"true"<<endl;
}
else{
cout<<"false"<<endl;
}
本文介绍了在C++中为何不能直接使用==或!=运算符来比较double类型的数值,并给出了一种通过设置误差范围来进行比较的方法。
2万+

被折叠的 条评论
为什么被折叠?



