grails 如何检查双负零

grails how to check Double negative zero

我用谷歌搜索了答案。他们说使用 Double.compare()。 没用。

Double.compare(-0d, 0d) < 0

这给了我错误。应该是真的。

Math.signum() 不适用于 -0d。文档说它会给我返回-0d。

另一方面,如果我有一个计算值为 -0 的公式,比较会给出不同的答案。

def xyz = -0d
Double.compare(xyz, 0d) < 0 will give me false
def xyz = 0d * -1d
Double.compare(xyz, 0d) < 0 will give me true

这是 Grails 中的错误吗?

为什么您认为比较 -0d0d 不相等?

Double.compare(-0d, 0d) < 0// returns false

原因

Double.compare(-0d, 0d) == 0 //returns true