小林です。

----- Original Message -----
送信者 : Masahiro TANAKA <masa / koala.astro.isas.ac.jp>
件名 : [ruby-math:00142] Re: % & divmod() & remainder()


>
> え、そうなんですか。SunOS 4.1.4 と Solaris 2.6 と
> glibc 2.1.2 にはあるので、一般的なものかと思ってしまいました。
> # SunOS 4.1.4 には div(3)がない...
>
何かと評判の悪いVCには remainder() はありません。 (^^;;

> 定義は、最も近い整数を返す関数をroundとすると、
>
>   remainder(a,b) ≡ a - round(a/b)*b
>
> らしいです。よって、結果は -b/2 から b/2 までの間になります。
> ( round()の中が整数+0.5のとき、どのマシンでも同じ結果になるか
>   どうかはよくわからないのですが。)
>
整数は2進で表現できるし、+0.5は2進で+0.1なので多分
大丈夫な気がしますが(もちろん remainder() の定義が
同じなら)?
あと、Javaの BigDecimal は丸めモードを色々と指定でき
るようになっていますね。

それにしても、これだけ色々あるとは...
これなら、ceil() 方向とか、偶数方向に丸める「剰余」等も
あるかもしれませんね。

色々、勉強になりました。


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