数値が「NaN」の値である場合、if文をチェックインするにはどうすればよいですか?私はこれは私が「i」は、私は上記の不可解な出力を「NaNの」取得していますように設定にもかかわらず、varがRubyのNaNであるかどうかを確認するにはどうすればよいですか?
2.4.0 :003 > i = Float::NAN
=> NaN
2.4.0 :004 > puts "hi" if i
hi
=> nil
2.4.0 :005 > puts "hi" if i != Float::NAN
hi
=> nil
2.4.0 :006 > i
=> NaN
2.4.0 :007 > puts "hi" if i == Float::NAN
=> nil
仕事しかし、あなたが見ることができるようにするだろうと思いました。
は 'NaN'は何にではなく、さらにNaN''と同じではありません。それは仕様によるものです。その理由は、「NaN」は数字ではなく、あなたが何か考えていないことを伝える条件です。この状態には多くの理由があります。したがって、NaNと同等のものはないと単純に決定されました。 「NaN」は「私は知らない」と同等です...あなたが知らないならば、あなたはまたそれが平等であることも知らないのです! (3値論理のシステムでは、 'NaN == anything'はおそらく' false'の代わりに '分かりません ')でしょう。 –