1

次のコードがエラーをスローすることを期待していましたが、代わりにNaN. この動作はどこかに記述されていますか? なぜゼロによる整数除算と異なるのですか?

0.0 / 0.0 # => NaN

編集:この場合、ゼロを返す必要があるため、

(x / y rescue 0)

しかし、これはうまくいきませんでした。どうやってするの?

4

2 に答える 2

0
res = x/y
res = 0 unless res.finite?

finite?float が有効な浮動小数点数 (無限ではなく、nan? が false) である場合に true を返します。

于 2013-03-07T17:08:01.077 に答える
0

次のようなことができます

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

また

x.nonzero? || y.nonzero? ? x/y : 0
于 2013-03-07T16:51:46.067 に答える