我有一些计算(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_NEAR
或FloatEq
匹配器代替。
浮点宏说EXPECT_FLOAT_EQ
EXPECT_DOUBLE_EQ
ASSERT_FLOAT_EQ
和ASSERT_DOUBLE_EQ
将验证
两个
float
/double
的值几乎相等
:
这里的"几乎相等"是指两个值相差在4个ULP以内。
与ULP是代表单位在最后的位置