From: Akinori MUSHA Date: 2002-04-08T23:48:58+09:00 Subject: [ruby-dev:16791] Re: if Re: BigFloat 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.."