根据 Google Test 关于浮点比较的文档,EXPECT_DOUBLE_EQ
验证ASSERT_DOUBLE_EQ
两个双精度值val1
和val2
近似相等,彼此之间的差异在 4 个 ULP(最后一位单位)以内。
但是,尽管两个双精度数的差异出现在 2 个 ULP 中,但以下代码示例仍未通过测试。
TEST(Foo, doubles_match)
{
ASSERT_DOUBLE_EQ(0.62469504755442462, 0.62469504755442407);
}
结果:
error: Expected equality of these values:
0.62469504755442462
0.62469504755442407
我错过了什么?