gtest (C) 和 nunit (C#) 中双重比较之间的区别

新手上路,请多包涵

我已经将带有 gtest 测试的 c++ 项目移植到带有 nunit 测试的 ac# 项目。现在我遇到了浮点精度的问题。

在 nunit 测试中我一直不好(红色)

 Assert.AreEqual(0.7, 7 * 0.1);

在 gtest 测试中,我有:

 ASSERT_DOUBLE_EQ(0.7, 7 * 0.1);

没关系(绿色)

现在的问题是 为什么???

原文由 schoetbi 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 651
2 个回答

或者,您可以添加第三个参数,这是两个值之间的最大差异,您可以 在此处 阅读。

 public static void AreEqual (
    double expected,
    double actual,
    double delta
)

验证两个指定的双精度值是否相等,或彼此在指定的精度范围内。如果它们不在彼此指定的精度范围内,则断言失败。

原文由 Exa 发布,翻译遵循 CC BY-SA 2.5 许可协议

推荐问题