前田です。 In message "[ruby-list:7048] Re: infinity" Keiju ISHITSUKA <keiju / rational.com> wrote: |NaNの存在はよいとしても, 無限大/無限小がFloatになるというのが納得いか |ないですよねえ... 例えば, Bigfloatの様なものを誰かが作ったとして, その |結果が無限大とかになるとFloatになるのは... | |無限大/無限小はある意味で精度が無限にあるわけですから, Floatとは別クラ |スにした方が良いと思うのですが... | |あ, でも, Floatの表現できる範囲を越えると無限大/小になってしまうんでし |たよね? そうすると精度が無限にあるわけではないくて, Floatとしての無限 |大なんですね... 今のRubyのライブラリだとFloat::INFINITYでも矛盾しないと思うのですが、 将来のことを考えると別クラスの方が良いかもしれませんね。 [ruby-list:7032]の提案のようにcoerceで演算も渡せるようになれば、 結構簡単に書けそうな気もしますし...。 そうすると、1.0 / 0.0 や 0.0 / 0.0 はどうするのがよいでしょうね。 # ちなみにJavaのBigDecimal(なぜDecimalなのかな)はInfinity/NaNを # 扱えないようです。 # # public BigDecimal(double val) throws NumberFormatException{ # if (Double.isInfinite(val) || Double.isNaN(val)) # throw new NumberFormatException("Infinite or NaN"); # # これはちょっと嫌ですよね。 -- 前田 修吾