比较 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 就可以了。