浮点数double相等性比较

private bool IsEqual(double a, double b)
{
   bool isEqualFlag = false;
   // 绝对误差 0.000001
   const double eps_0 = 1.0e-6;
   // 相对误差 0.0001
   const double rel_error = 1.0e-4;
   if (Math.Abs(a - b) <= eps_0)
   {
       isEqualFlag = true;
   }
   else
   {
       if (Math.Abs(a) >= 1000.0 && Math.Abs(a - b) <= rel_error * Math.Abs(a))
       {
           isEqualFlag = true;
       }
   }
   return isEqualFlag;
}
原文地址:https://www.cnblogs.com/wesson2019-blog/p/14713535.html