From: Shin-ichiro HARA Date: 2003-08-01T12:54:40+09:00 Subject: [ruby-dev:21046] Re: [BigDecimal] exception handling 原です。 >小林です。 >> ところで、自分が[ruby-dev:20959]で指摘した、BigDecimal#divmodの >> バグはまだ直っていないみたいです。こちらは、修正をお願いできる >> でしょうか。 >仕様通りに動いているのがどうしてバグですか? >(返事は結構です) 今、BigDecimal の divmod と % の仕様をみたんですけど、Bigdecimal では、3.divmod(-4) と 3 % (-4) の結果が [1, 7] と 7 なんですね。 これは変えられませんか。なぜなら、a % b = r については、 a, b の 正負にかかわらず 0 <= |r| < |b| を成り立たせるようにするのは、強い慣習だと思うからです。 それから、 b = 3 (-5..2).each do |a| printf("%2d %% %d = %d\n", a, b, (BigDecimal(a.to_s)%BigDecimal(b.to_s))) end の結果が -5 % 3 = 1 -4 % 3 = 2 -3 % 3 = 0 -2 % 3 = -5 -1 % 3 = -4 0 % 3 = 0 1 % 3 = 1 2 % 3 = 2 になるのは、バグですかね。