在GTest中,如何检查数字非常接近0?EXPECT_FLOAT_EQ不工作



我有一些计算(a)sin/(a)cos值的代码这些值应该非常接近于0,但是当我说

EXPECT_FLOAT_EQ(my_computed_var, 0);

我得到如下错误:

/path/to/my/test.cpp:148: Failure
      Expected: my_computed_var
      Which is: 9.9920072e-16
      To be equal to: 0

我该怎么做?对于其他数字我也会得到这种类型的"错误":-4.3711388e-08

查找处理浮点错误的具体建议和一般信息

使用EXPECT_NEARFloatEq匹配器代替。

浮点宏说EXPECT_FLOAT_EQ EXPECT_DOUBLE_EQ ASSERT_FLOAT_EQASSERT_DOUBLE_EQ将验证

两个float/double的值几乎相等

:

这里的"几乎相等"是指两个值相差在4个ULP以内。

与ULP是代表单位在最后的位置

最新更新