From: Tadayoshi Funaba Date: 2008-12-13T09:32:56+09:00 Subject: [ruby-dev:37413] Re: Math and NaN > |Math.sin に NaN を与えてもそのまま NaN が返ってきますが、Math.sqrt はエ > |ラーになります。振舞いが一貫していないように感じます。 > > Rubyレベルではなんのチェックもしていませんので、(ある特定の > プラットフォームにおける)sqrt(3m)の挙動のようです。ドキュメ > ントには負の数に関する言及はありますが、NaNについては言及が > ないようです。 http://www.opengroup.org/onlinepubs/009695399/functions/sqrt.html このあたりだと NaN について書いてありますね。おそらく、NaN しかるべきと ころでエラーと断じるか、ひたすら受け流すか、ということになるのだと思い ます。 今現在、Math.sin(Inf) などで、NaN が返った場合などもなんの検査もないで すが、これはこれでいいんですかね。 ruby では、NaN/0 などのようなものも含めて、エラーにならない場合が多く、 sqrt(-1) や acos(-2) ある特定のものについてエラーになっているように見え ます。 他の言語に比べて方針が判り難いというか、よく判らなかったんですが、その あたりの方針があれば知りたいです。