比较Java中两个双打的符号

Ale*_*lex 0 java math

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

现在我检查

Math.signum(d1) == Math.signum(d2) 
Run Code Online (Sandbox Code Playgroud)

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

如果我已经检查过两个数字都不都接近0,上述方法还可以吗?

And*_*cus 5

之所以有效,是因为返回的值始终是param / Math.abs(param)x / |x|),所以从{-1.0, 0.0, 1.0}(如果输入为0以避免被0除的情况下为0.0)中的一个数字,并且根据javadoc,它适用于double。

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