前田です。

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");
#
# これはちょっと嫌ですよね。

-- 
前田 修吾