比较 Java 中两个双精度的符号



我有 2 个双打,检查它们是否有相同符号的最佳方法是什么?

现在我检查

Math.signum(d1) == Math.signum(d2) 

但我不确定它对双精度是否正确,因为 Math.signum(( 本身返回一个双精度值。

如果我已经检查了两个数字都不接近 0,上述内容可以吗?

它有效,因为返回值始终是param / Math.abs(param)(x / |x|(,所以来自{-1.0, 0.0, 1.0}的数字(如果输入为 0,则为 0.0 以避免除以 0(,根据 javadoc,它适用于双精度。

如果您不确定,可以随时检查:d1 * d2 >= 0

你可以证明 d1 * d2> 0。

最新更新