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 许可协议

阅读 572
2 个回答

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

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

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题