在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;
}