首页 > 解决方案 > 比较Java中两个双打的符号

问题描述

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

现在我检查

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

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

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

标签: javamathjvmdoubleequals

解决方案


它可以工作,因为返回值始终是param / Math.abs(param)( x / |x|),所以从{-1.0, 0.0, 1.0}(0.0 中的数字,如果输入为 0 以避免除以 0)并且根据javadoc它适用于双精度。

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


推荐阅读