From: Tadayoshi Funaba Date: 2008-04-02T23:27:36+09:00 Subject: [ruby-dev:34229] Re: Complex組み込み > ちなみに、私の心づもりとしては「quoはもっとも正確に近い値を > 返す」というつもりです。だから、1.8だとRationalがあるときに > はRationalを返し、ないときにはFloatを返します。1.9ではいつも > Rational。それは、ふなばさんのイメージと大きく異なっていませ > んか? 正確というのがどういうものかわかりませんが、基本的には、それでいいと思 います。rational を返すがいいと思いますが、それはまた別の課題だと考え ていいと思います。 > もっとも、精度の問題がありますから、この方針が良くない場合も > あるでしょうね。 > > 気になるのは rational.quo(float) とかで、 > > (1) 精度が低い方に合わせる > (2) より正確なクラスに合わせる > > のいずれが望ましいかという点です。現在はひとつのメソッドがい > ろいろなオブジェクトを返すのはあんまりよろしくないような気が > しているので、(2)の方が良いように思っています。しかし、その辺 > は実際にRationalやFloatを使う人の意見を聞きたいものです。 10年近く前の議論でも少し話がありましたが、Float は別もので、Float をつ かうと、汚染される、ということになっていますね。Common Lisp では、 floating-point contagion というようですが。