田中@ISASです。

In message: <<[ruby-math:00129] Re: %  &  divmod() & remainder()>>
>>> matz / netlab.co.jp (Yukihiro Matsumoto) wrote:

> % と remainder は scheme の modulo と remainder からとってま
> すので(実装のミスはともかく)定義ははっきりできると思います。

Cの fmod と remainder とは違うんですね、しくしく。
私のように Scheme を知らない人には自明ではないので、

  a%b ≡ a - (a.to_f/b).floor * b

のように挙動の定義があるとありがたいです。

> で、最後に divmod ですが、以下のいずれが良いと思いますか。

modは a%b、divは (a-a%b)/b というのが
わかりやすいと思います。

ただし、ふなばさんが [ruby-list:16680] で書かれた
> def divmod(other) return (self / other).floor, self % other end
は、整数のとき、(self/other)の結果が負だと
floorと逆方向に丸められるので、もうひとひねり必要ですね。

> 整数にfloorやceilを付けるんですか? なんか変な気もします。

小林さんも言われたように、あった方がいいです。
ただし整数はそのまま返してほしい気がします。

田中昌宏