At Mon, 8 Apr 2002 23:07:07 +0900,
Shigeo Kobayashi wrote:
> >   Rational op BigFloat -> BigFloat
> Rational op BigFloat -> Rational
> BigFloat op Rational -> Rational
> ではないでしょうか?
> 精度(有効桁)的には
>  Float <= BigFloat(BigDecimal) <= Rational
> と考えられるので、より精度の高いほうに合わ
> せるのが自然と思うのですが?

 なるほど。。

 しかし、素朴な疑問なのですが、分母分子が巨大な Rational って
望まれるものでしょうか?(というフィルターが無意識にかかっていた
ことを自白します ;)

 Rational op Float -> Float となっている現状についてはいかが
でしょうか。

> BigDecimal ==> Rational の変換は常に可能ですが、精度
> を落とさずに Rational ==> BigDecimal の変換は常に可能
> というわけにいかないし、ここはユーザに気を使ってもらえ
> ば良いような気がしてきました。
> 例えば、BigDecimal#to_r を BigDecimal から Rational に
> (誤差無く)変換するメソッドとするなら、以下のようにすれ
> ば取り合えず何とかなります。
(snip)
> どうせ Rational と BigDecimal 共に require しなきゃ
> いけないし、Rational と BigDecimal を常に意識しな
> がら計算するケースはそれほど多くは無いと思うの
> で、この程度で良いのではないでしょうか?

 確かに、混在するようなケースはユーザが把握し、明示的に変換
すべきだというのも一理あると思います。いずれにしても明示的な
変換メソッドは欲しいですね。

-- 
                     /
                    /__  __            Akinori.org / MUSHA.org
                   / )  )  ) )  /     FreeBSD.org / Ruby-lang.org
Akinori MUSHA aka / (_ /  ( (__(  @ iDaemons.org / and.or.jp

"Somewhere out of a memory.. of lighted streets on quiet nights.."