From: Shigeo Kobayashi Date: 2002-04-09T00:42:54+09:00 Subject: [ruby-dev:16794] Re: if Re: BigFloat 小林です。 色々とアドバイスありがとうございます。 ----- Original Message ----- From: "Akinori MUSHA" Subject: [ruby-dev:16791] Re: if Re: BigFloat >  しかし、素朴な疑問なのですが、分母分子が巨大な Rational って まれなケース(と勝手にみなして)なので使う方も意識 していると、これまた勝手に想像しています。 >  Rational op Float -> Float となっている現状についてはいかが > でしょうか。 Floatは2進なので、誤差無く Rational に変換できないと思 います。従って Rational op Float -> Rational としても変換 誤差が出てしまうのなら、いっそのこと効率を考えて、Float にしてしまったのではないでしょうか? >  確かに、混在するようなケースはユーザが把握し、明示的に変換 > すべきだというのも一理あると思います。いずれにしても明示的な > 変換メソッドは欲しいですね。 やるなら、[ruby-dev:16789]の to_r をbigdecimal.cにインプリメントして から  1.BigDecimal op Rational ==> BigDecimal#to_r op Rational  2.Rational op BigDecimal は Rational が coerce してくれるので     BigDecimal#to_r , Rational = BigDecimal#coerce(Rational) というのをbigdecimal.cに入れれば    Rational op BigDecimal#to_r    と Rational 側で実行してくれるのではないでしょうか? ------------------ 小林 茂雄 shigeo@tinyforest.jp