diff --git a/ChangeLog b/ChangeLog index 45ae085de9..2da88a405a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Sun May 29 23:22:46 2011 Nobuyoshi Nakada + + * numeric.c (flo_round): use absolute value as divisor. + Sun May 29 23:17:29 2011 NARUSE, Yui * re.c (rb_reg_match): fix rdoc of Regexp#=~. diff --git a/numeric.c b/numeric.c index 09860dc6f2..b868c51bea 100644 --- a/numeric.c +++ b/numeric.c @@ -1512,7 +1512,7 @@ flo_round(int argc, VALUE *argv, VALUE num) VALUE f10 = int_pow(10, -ndigits); VALUE n10 = f10; if (number < 0) { - f10 = FIXNUM_P(f10) ? fix_uminus(f10) : rb_big_uminus(f10); + n10 = FIXNUM_P(n10) ? fix_uminus(n10) : rb_big_uminus(n10); } num = rb_big_idiv(rb_dbl2big(absnum), n10); return FIXNUM_P(num) ? fix_mul(num, f10) : rb_big_mul(num, f10);