如何比较两个double(float)是否相等?

#原理
计算机内部表示小数(float,double型小数)都是有误差的(因为计算机只有0,1)。

#方法

  1. 判断两个小数是否相等,只能判断它们之差的绝对值是不是在一个很小的范围内(我觉得超过其要求的精度即可)。
  2. 如果两个数之差很小,那么就可以认为他们是相等的。

#代码

1
2
3
4
5
6
7

bool (double num1,double num2)
{
if(num1 - num2 > -0.000001 && num1-num2 < 0.00001)
return true;
else return false;
}