From: Kenta Murata Date: 2008-04-03T04:26:17+09:00 Subject: [ruby-dev:34232] Re: Complex組み込み 村田です. 2008/4/2 Yukihiro Matsumoto : > もっとも、精度の問題がありますから、この方針が良くない場合も > あるでしょうね。 > > 気になるのは rational.quo(float) とかで、 > > (1) 精度が低い方に合わせる > (2) より正確なクラスに合わせる > > のいずれが望ましいかという点です。現在はひとつのメソッドがい > ろいろなオブジェクトを返すのはあんまりよろしくないような気が > しているので、(2)の方が良いように思っています。しかし、その辺 > は実際にRationalやFloatを使う人の意見を聞きたいものです。 ふなばさんが [ruby-dev:34229] で仰っているように,浮動小数点数は 他の正確な数を食ってしまうと考えた方が良いです.一旦浮動小数点数に 変換して計算した値を正確に整数や有理数に変換できることは期待でき ないはずです.もしどうしても変換する必要があるなら,そのような 問題があることを理解したうえで Float#to_r で明示的に行われるべき でしょう.ですから,内部で Float を Rational に変換してから何かを行う メソッドや演算は存在しない方が親切ではないかと思います. -- Kenta Murata OpenPGP FP = FA26 35D7 4F98 3498 0810 E0D5 F213 966F E9EB 0BCC