7

私は得ることができInfinityますNaN

n = 9.0 / 0 #=> Infinity
n.class #=> Float

m = 0 / 0.0 #=> NaN
m.class #=> Float

Infinityしかし、または直接アクセスしたい場合NaN

Infinity #=> uninitialized constant Infinity (NameError)
NaN #=> uninitialized constant NaN (NameError)

Infinityととは何NaNですか? それらはオブジェクトですか、キーワードですか、それとも何か他のものですか?

4

2 に答える 2

5

と表示されInfinityているのは、キーワードやリテラルではなくNaN、クラスの 2 つの特別なインスタンスの単なる文字列表現です。Floatこれらは、0 による浮動小数点除算によって、または定数Float::INFINITYおよびを参照することによって返されFloat::NANます。

Float::INFINITY.class
# => Float
Float::INFINITY.to_s
# => "Infinity"

Float::NAN.class
# => Float
Float::NAN.to_s
# => "NaN"
于 2013-08-27T09:09:39.450 に答える
4

inf/nan リテラルが必要な場合は、次を使用します。

>> Float::INFINITY
=> Infinity
>> Float::NAN
=> NaN

浮動小数点定数リストを参照してください

于 2013-08-27T08:42:20.880 に答える