From: Yasushi Shoji Date: 2000-01-25T11:00:12+09:00 Subject: [ruby-list:20370] Re: divmod() From: Yasushi Abe Subject: [ruby-list:20369] divmod() Date: Tue, 25 Jan 2000 09:24:39 +0900 > ドキュメントには特に記述がなかったので、rubyのソースを読んでみたんです > けど、divmod()で%の演算を呼び出しているところまでで挫折してしまいまし > た(^^; divmod()っていうか、Fixnum#%ですかね。 $ ruby -e "p (-123 % 10)" 7 $ ruby -e "p (-123.remainder(10))" -3 $ cat mod.c #include int main() { printf("%d\n", -123 % 10); return 0; } $ gcc -Wall mod.c; ./a.out -3 $ xemacs --version XEmacs 21.1 (patch 8) "Bryce Canyon" [Lucid] (i586-pc-linux, Mule) of Sun Jan 2 2000 on yashipc (% -123 10) -3 まあ、ややこしいといえば、そうかも‥。でも ruby-man-1.4-jpにも > remainder(other) > selfをotherで割った余りを返します。整数に負の数を含む時、%と値 > が異なります。 > > 13 % 4 => 1 13 % -4 => -3 -13 % 4 => 3 -13 % -4 => -1 > 13.remainder(4) => 1 13.remainder(-4) => 1 -13.remainder(4) => > -1 -13.remainder(-4) => -1 って、あるので‥。 -- yashi