From: Tadayoshi Funaba Date: 2008-12-11T01:31:26+09:00 Subject: [ruby-dev:37357] Math and NaN Math.sin に NaN を与えてもそのまま NaN が返ってきますが、Math.sqrt はエ ラーになります。振舞いが一貫していないように感じます。 main@191-20081211> NaN = 0.0/0 #=> NaN main@191-20081211> Math.sin(NaN) #=> NaN main@191-20081211> Math.sqrt(NaN) Errno::EDOM: Numerical argument out of domain - sqrt from (irb):3:in `sqrt' from (irb):3 from ./bin/irb:12:in `
' おそらく、sqrt では、まず負数について検査したいということがあったのかも しれませんが、NaN についてはどうなのでしょうか。 ruby での方針が判らないですが、たとえば、python では、NaN になっても、 入力が NaN であればエラーにはしない、というようになっているようです (python では、0.0/0 はエラーです)。