浮点除零

时间:2013-03-07 16:48:39

标签: ruby

我期待以下代码抛出错误,但它会返回NaN。这种行为在任何地方描述?为什么它与整数除以零有什么不同?

0.0 / 0.0 # => NaN

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

(x / y rescue 0)

但这不起作用。怎么做?

2 个答案:

答案 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。