我期待下面的代码抛出一个错误,但它会返回NaN
。这种行为描述在哪里?为什么它不同于整数除零?浮点除以零
0.0/0.0 # => NaN
编辑:我需要在这种情况下返回零,所以我打算
(x/y rescue 0)
但这并没有工作。怎么做?
我期待下面的代码抛出一个错误,但它会返回NaN
。这种行为描述在哪里?为什么它不同于整数除零?浮点除以零
0.0/0.0 # => NaN
编辑:我需要在这种情况下返回零,所以我打算
(x/y rescue 0)
但这并没有工作。怎么做?
res = x/y
res = 0 unless res.finite?
finite?
返回true,如果一个浮球是一个有效的浮点数(不是无限的,喃?是假的)。
重复的问题。 http://stackoverflow.com/questions/7726615/why-in-ruby-0-0-0-3-0-0-and-3-0-behave-differently – christopher 2013-03-07 16:50:07
'0/0'是一个不确定的形式,所以它是从红宝石准确返回'NaN' http://en.wikipedia.org/wiki/Division_by_zero – nicooga 2013-03-07 17:44:29