我有 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。