【发布时间】:2021-08-10 09:58:25
【问题描述】:
我有两个可能等于 Infinity 的双变量。我想比较它们并允许误差范围。由于我使用的环境,我无法使用 assertEquals。
我试过了
assert Math.abs(a-b)<DELTA;
但如果 a 和 b 都是 Infinity,则返回 false。有没有一种简单的方法来检查相等性而不对 Infinity 情况进行显式检查?
【问题讨论】:
-
您使用什么断言/单元测试框架?他们中的大多数都有一个带有增量的
assertEquals变体。 -
为什么不
assert a == b || Math.abs(a-b) < DELTA;? -
你想如何处理 NaN?
-
@user207421 这可能是最好的选择。我希望有像 Double.compareWithMargin 这样的东西,但我想没有这样的内置功能。谢谢!
-
无需猜测是否存在。只需查找
Double的 Javadoc。
标签: java double equality infinity