小林です。

----- Original Message -----
送信者 : GOTO Kentaro <gotoken / math.sci.hokudai.ac.jp>
件名 : [ruby-math:00116] Re: %


>
> ふなばさんが同様の指摘をしていましたが、少なくとも型で違うの
> は良くないですね。問題はどっちにそろえるかですね。しかし、あ
> まり指針を持っていません。
>
そうですね。私も [ruby-list:16680] のふなばさんに一票いれます。
どうも %、divmod()、remainder() の定義がはっきりしないことが
混乱の原因ですね。

私見ですが、

1.% の結果は Float を修正して Fixnum に合わせる。
  C の % とは異なりますが、今の実装を尊重して...
2.d,r=a.divmod(b) なら、d*b+r = a を満たす。
    d は a/b の結果をゼロ方向に向かって丸めた整数値。
  これは C の div() 関数も採用しているので...
3. remainder()は上記2.の r を計算するもの。

とすれば、自然だし、現状との整合性もある程度確保できると
思うのですがいかがでしょう?
ようは定義と実装の問題ですので。

あと、 [ruby-list:16680] の整数に対する floor() や ceil() の
挙動も賛成です。

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