Compare two floats

前端 未结 5 1596
小蘑菇
小蘑菇 2020-12-03 01:39
#include 

bool Equality(double a, double b, double epsilon)
{
  if (fabs(a-b) < epsilon) return true;
  return false;
}

I trie

5条回答
  •  死守一世寂寞
    2020-12-03 02:23

    Keep in mind that when float a = +2^(254-127) * 1.___22 zeros___1 and float b = +2^(254-127) * 1.___23 zeros___ then we expect abs(a-b) < epsilon but instead a - b = +2^(254-127-23) * 1.___23 zeros___ = 20282409603651670423947251286000 which is much bigger than epsilon...

提交回复
热议问题