1

我期望以下代码会引发错误,但它会返回NaN. 这种行为在任何地方都有描述吗?为什么它与整数除以零不同?

0.0 / 0.0 # => NaN

编辑:在这种情况下我需要返回零,所以我打算

(x / y rescue 0)

但这没有用。怎么做?

4

2 回答 2

0

你可以做类似的事情

x == 0 and y == 0 ? 0 : x/y

或者

x.nonzero? || y.nonzero? ? x/y : 0
于 2013-03-07T16:51:46.067 回答
0
res = x/y
res = 0 unless res.finite?

finite?如果 float 是有效的浮点数(不是无限的,并且 nan? 为 false),则返回 true。

于 2013-03-07T17:08:01.077 回答