首先要知道浮点数是存在误差的
例如:
float f = 1;
float sum = 0;
for(int i=0; i<4000000; i++)
{
sum += f;
}
cout<<sum<<endl;
输出结果是:9998.56
这是因为计算机保存浮点数的精度有限造成的,那我们应该如何较好地避免浮点误差呢?
其实只有在判断两个浮点数是否相等时才会较经常出现这种浮点错误
解决方法:
bool equal(double a,double b){
return fabs(a-b)<0.000001;
}
只要两个浮点数的差很小就可以判断它们是相等了。
————————————————
原文链接:https://blog.csdn.net/weixin_37609825/article/details/79810018