gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 20:54:08 26 4
gpt4 key购买 nike

我有一些代码可以计算 (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匹配器代替。

Floating-Point Macros表示 EXPECT_FLOAT_EQ EXPECT_DOUBLE_EQ ASSERT_FLOAT_EQASSERT_DOUBLE_EQ 将验证

the two float/double values are almost equal

和:

By "almost equal", we mean the two values are within 4 ULP's from each other.

带有 ULP 的代表 Unit in the last places

关于c++ - 在 GTest 中,如何检查非常接近 0 的数字? EXPECT_FLOAT_EQ 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40232221/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com