我期待以下代码抛出错误,但它会返回NaN
。这种行为在任何地方描述?为什么它与整数除以零有什么不同?
0.0 / 0.0 # => NaN
编辑:在这种情况下我需要返回零,所以我要去
(x / y rescue 0)
但这不起作用。怎么做?
答案 0 :(得分:0)
您可以执行类似
的操作x == 0 and y == 0 ? 0 : x/y
或
x.nonzero? || y.nonzero? ? x/y : 0
答案 1 :(得分:0)
res = x/y
res = 0 unless res.finite?
如果float是有效的浮点数(不是无限的,而nan?是假的), finite?
返回true。