比较 Java 中两个双打的符号
Compare sign of two doubles in Java
我有 2 个双打,检查它们是否具有相同符号的最佳方法是什么?
现在我检查
Math.signum(d1) == Math.signum(d2)
但我不确定它对双精度是否正确,因为 Math.signum() 本身 returns 是一个双精度值。
如果我已经检查过两个数字都不接近 0,以上是否可以?
有效,因为返回值始终是 param / Math.abs(param)
(x / |x|
),所以来自 {-1.0, 0.0, 1.0}
的数字(0.0 以防输入为 0 以避免被 0 除)并根据到 javadoc 它适用于双倍。
如果您不确定,可以随时查看:d1 * d2 >= 0
。
你只要证明 d1 * d2 > 0 就可以了。
我有 2 个双打,检查它们是否具有相同符号的最佳方法是什么?
现在我检查
Math.signum(d1) == Math.signum(d2)
但我不确定它对双精度是否正确,因为 Math.signum() 本身 returns 是一个双精度值。
如果我已经检查过两个数字都不接近 0,以上是否可以?
有效,因为返回值始终是 param / Math.abs(param)
(x / |x|
),所以来自 {-1.0, 0.0, 1.0}
的数字(0.0 以防输入为 0 以避免被 0 除)并根据到 javadoc 它适用于双倍。
如果您不确定,可以随时查看:d1 * d2 >= 0
。
你只要证明 d1 * d2 > 0 就可以了。