【问题标题】:grails how to check Double negative zerograils如何检查双负零
【发布时间】:2021-10-29 01:23:47
【问题描述】:

我用谷歌搜索了答案。他们说使用 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 中的错误吗?

【问题讨论】:

标签: grails


【解决方案1】:

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

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

原因

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

【讨论】:

  • 让我再试试 Math.signum()。我可能读错了文件。 signum() 可能会起作用。 compare() 对我来说并不可靠。最坏的情况是把数字变成一个字符串,并在第一个字母中寻找减号。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-12-16
  • 2012-11-25
  • 1970-01-01
  • 1970-01-01
  • 2012-12-11
  • 2011-04-13
  • 2014-06-24
相关资源
最近更新 更多