C++比较双打

C++ Comparing Doubles

本文关键字:比较 C++      更新时间:2023-10-16

使用双精度的<或>是否有任何已知问题?

d1 > d2
d2 > d1

我找不到任何表明这将是一个问题的东西。

但是,由于平等问题,我认为这将是一个问题,我将不得不使用 Epsilon 使用"几乎相等"逻辑:

d1 >= d2
d2 >= d1

><完全按预期工作;如果d1的值大于d2的值,则d1 > d2将被true(反之亦然)。 问题(如果有的话)是d1d2可能不完全是预期的值。

但是,将>替换为>=将更改一个值 d1 的行为(对于固定值 d2 )。

唯一的问题是你可能会得到一个"误报",其中有两个变量d1d2你认为具有相等的值。在这种情况下,如果您执行d1 > d2,则表达式的计算结果有可能为 true。