有没有一种有效的方法来检查C ++中的近似浮点相等性?

时间:2011-09-22 02:16:24

标签: java c++ floating-point

  

可能重复:
  Most effective way for float and double comparison

我有一个计算距离的函数,然后稍后将该距离与2的平方根进行比较,以查看两个项目是否在网格上相邻。在Java中这很好用,显然Math.sqrt(Math.pow(x1-x2,2)....)产生与Math.sqrt(2)相同但在C ++ cmath的sqrt(pow(x1-x2,2) )...)不相等。

我cout<< ed双重和显示的精度(我也会输出更高的精度只是为了看)他们看起来相等,但没有评价为相等。另一方面,如果我在sqrt(2)的+ - 0.01范围内测试值,那么这个“近似相等”测试就可以了。这是我应该做的还是其他事情的事情?如果这是我必须做的,是否有更好的方法来进行这项测试?

感谢。

0 个答案:

没有答案