From: Yukihiro Matsumoto Date: 2009-06-16T23:19:19+09:00 Subject: [ruby-dev:38659] Re: Fixnum#fdiv まつもと ゆきひろです In message "Re: [ruby-dev:38657] Re: Fixnum#fdiv" on Tue, 16 Jun 2009 21:23:57 +0900, Tadayoshi Funaba writes: |結果としての望ましさ、ということでは、[ruby-dev:38640] の | |> Float(x/y)の方が情報が落ちていないのは分かります。 | |ということにつきるように思いますが、ruby として、あるいは fdiv としての |方針がよくわからない、ということでしょうか。 私が気にしているのは「挙動の理解しやすさ」ですね。 Float(x)/Float(y) は現在のRubyでも定義されている振舞いであり、どのような動作を するか理解するのは簡単です。また、floatならではの限界や誤差 も(知っていれば)明白です。もっとも、[ruby-core:11069]の問題 は解決できないわけですが。一方、 Float(x/y) は(x/y)の部分が、いまいち不明瞭です。いや、私が理解してない だけですが。この(x/y)の部分は「有理数として商を求める」と理 解すればよいのでしょうか。つまり、 Float(Rational(x,y)) と同じ結果を返す、と。そういうことであれば、私にとってすっき りしますし、コストが若干気になりますが、それ以外に反対するよ うな理由はどこにもありません。 実際のところどうなんでしょう? |現状では fdiv も Complex になることもあり、rdiv と同様に考えればこれも |おかしい、という可能性があると思います。 fdivがcomplexを返す場合、fは実部と虚部がfloatであることを示す、 と私は理解しています。 まつもと ゆきひろ /:|)