小林です。

----- Original Message -----
送信者 : Shigeo Kobayashi <shigeo / tinyforest.gr.jp>
件名 : [ruby-list:20371] divmod()


> えっと、numeric.cのnum_divmod(x, y)ですね。
> 問題は、floor()を使った後が変なようです。
> 「if (TYPE(div) == T_FLOAT) {」の中を以下のように修正すれば
> いいような気がします。
>

ごめんなさい。

これでは、Float以外のときがだめです(頭にFloatしかなかった)。
で、「d,r=a.divmod(b)のときに、常に a==d*b+rが成立する」と仮定する
と、他のクラスのときも同様にも修正する必要があるということになり
ますね。

丸める方向を、ゼロ方向にするか、floor()方向にするかの問題ですが
Ruby本には単に「商と剰余」とあるし、a==d*b+rが成立すると考える
のは間違いではないと思うのですが?

小林 茂雄
E-Mail: shigeo / tinyforest.gr.jp
WWW: http://www.tinyforest.gr.jp