我期待下面的代碼拋出一個錯誤,但它會返回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