[Bug #2662] BigDecimal#ceil, etc. should not return Integer

Bug #2662: BigDecimal#ceil, etc. should not return Integer
http://redmine.ruby-lang.org/issues/show/2662

e$B5/I<<Te(B: Yusuke E.
e$B%9%F!<%?%9e(B: Open, e$BM%@hEYe(B: Normal
e$BC4Ev<Te(B: Yukihiro M., e$B%+%F%4%je(B: ext, Target version:
1.9.x
ruby -v: ruby 1.9.2dev (2010-01-27 trunk 26434) [i686-linux]

e$B$^$D$b$H$5$se(B
e$B1sF#$G$9!#e(B

r20584 e$B$He(B r20616 e$B$Ge(B BigDecimal#ceil e$B!"e(Btruncate
e$B!“e(Bfloor e$B!“e(Bround e$B!“e(Bdiv e$B$Ne(B
e$BLa$jCM$re(B Integer e$B$K$9$kJQ99$,$”$j$^$9$,!”$3$l$@$H5pBg$Je(B
BigDecimal e$B$re(B
e$B07$($J$/!”$^$?$O07$$$,LLE]$K$J$j$^$9!#e(B

e$B5pBg$Je(B BigDecimal e$B$Oe(B ceil e$B$,<h$l$J$$e(B

$ ./ruby -rbigdecimal -e ‘p BigDecimal(“1E100000”).ceil’
(e$B5pBg$Je(B Bignum e$B$r3NJ]$7$h$&$H$7$F8G$^$ke(B…)

Infinity e$B$,:.$6$k$H$-$O<+J,$GBP=h$9$kI,MW$,$"$ke(B

$ ./ruby -rbigdecimal -e ‘p BigDecimal(“Infinity”).ceil’
-e:1:in ceil': Computation results to 'Infinity' (FloatDomainError) from -e:1:in

Float#ceil e$B$J$I$,e(B Integer
e$B$rJV$9$N$K9g$o$;$k$?$a$@$H;W$$$^$9$,!“$3$NJQ99e(B
e$B$G$Oe(B BigDecimal e$B$N$”$j$,$?$_<+BN$,8:$C$F$7$^$&5$$,$7$^$9!#e(B
e$B$I$&$7$F$b$H$$$&$3$H$G$J$1$l$P!"e(Brevert e$B$rDs0F$7$^$9!#e(B

diff --git a/ext/bigdecimal/bigdecimal.c b/ext/bigdecimal/bigdecimal.c
index c6ffe98…1f51f61 100644
— a/ext/bigdecimal/bigdecimal.c
+++ b/ext/bigdecimal/bigdecimal.c
@@ -1108,7 +1108,7 @@ BigDecimal_div2(int argc, VALUE *argv, VALUE self)
Real *div=NULL;
Real *mod;
if(BigDecimal_DoDivmod(self,b,&div,&mod)) {

  • return BigDecimal_to_i(ToValue(div));
  • return ToValue(div);
    }
    return DoSomeOne(self,b,rb_intern(“div”));
    } else { /* div in BigDecimal sense */
    @@ -1308,9 +1308,6 @@ BigDecimal_round(int argc, VALUE *argv, VALUE
    self)
    GUARD_OBJ(c,VpCreateRbObject(mx, “0”));
    VpSetPrecLimit(pl);
    VpActiveRound(c,a,sw,iLoc);
  • if (argc == 0) {
  • return BigDecimal_to_i(ToValue(c));
  • }
    return ToValue(c);
    }

@@ -1355,9 +1352,6 @@ BigDecimal_truncate(int argc, VALUE argv, VALUE
self)
GUARD_OBJ(c,VpCreateRbObject(mx, “0”));
VpSetPrecLimit(pl);
VpActiveRound(c,a,VP_ROUND_DOWN,iLoc); /
0: truncate */

  • if (argc == 0) {
  • return BigDecimal_to_i(ToValue(c));
  • }
    return ToValue(c);
    }

@@ -1418,9 +1412,6 @@ BigDecimal_floor(int argc, VALUE *argv, VALUE
self)
GUARD_OBJ(c,VpCreateRbObject(mx, “0”));
VpSetPrecLimit(pl);
VpActiveRound(c,a,VP_ROUND_FLOOR,iLoc);

  • if (argc == 0) {
  • return BigDecimal_to_i(ToValue(c));
  • }
    return ToValue(c);
    }

@@ -1465,9 +1456,6 @@ BigDecimal_ceil(int argc, VALUE *argv, VALUE self)
GUARD_OBJ(c,VpCreateRbObject(mx, “0”));
VpSetPrecLimit(pl);
VpActiveRound(c,a,VP_ROUND_CEIL,iLoc);

  • if (argc == 0) {
  • return BigDecimal_to_i(ToValue(c));
  • }
    return ToValue(c);
    }

e$B$D$$$G$K!"$3$NJQ99$Ge(B rubyspec
e$B$,$d$C$Q$j$$$C$Q$$<:GT$7$F$$$^$9!#e(B

BigDecimal#ceil returns the smallest integer greater or equal to self,
if n is unspecified ERROR
FloatDomainError: Computation results to ‘Infinity’
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/ceil_spec.rb:34:in
ceil' /home/mame/work/ruby/spec/rubyspec/library/bigdecimal/ceil_spec.rb:34:in block (2 levels) in <top (required)>’
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/ceil_spec.rb:4:in
`<top (required)>’

BigDecimal#div with precision set to 0 returns NaN if NaN is involved
ERROR
FloatDomainError: Computation results to ‘NaN’(Not a Number)
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/shared/quo.rb:34:in
div' /home/mame/work/ruby/spec/rubyspec/library/bigdecimal/shared/quo.rb:34:in block (2 levels) in <top (required)>’
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/div_spec.rb:5:in
`<top (required)>’

BigDecimal#div returns NaN if NaN is involved ERROR
FloatDomainError: Computation results to ‘NaN’(Not a Number)
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/div_spec.rb:46:in
div' /home/mame/work/ruby/spec/rubyspec/library/bigdecimal/div_spec.rb:46:in block (2 levels) in <top (required)>’
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/div_spec.rb:12:in
`<top (required)>’

BigDecimal#div returns NaN if divided by Infinity and no precision given
ERROR
FloatDomainError: Computation results to ‘NaN’(Not a Number)
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/div_spec.rb:51:in
div' /home/mame/work/ruby/spec/rubyspec/library/bigdecimal/div_spec.rb:51:in block (2 levels) in <top (required)>’
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/div_spec.rb:12:in
`<top (required)>’

BigDecimal#div returns NaN if (+|-) Infinity divided by 1 and no
precision given ERROR
FloatDomainError: Computation results to ‘NaN’(Not a Number)
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/div_spec.rb:109:in
div' /home/mame/work/ruby/spec/rubyspec/library/bigdecimal/div_spec.rb:109:in block (2 levels) in <top (required)>’
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/div_spec.rb:12:in
`<top (required)>’

BigDecimal#floor returns the greatest integer smaller or equal to self
ERROR
FloatDomainError: Computation results to ‘Infinity’
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/floor_spec.rb:29:in
floor' /home/mame/work/ruby/spec/rubyspec/library/bigdecimal/floor_spec.rb:29:in block (2 levels) in <top (required)>’
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/floor_spec.rb:4:in
`<top (required)>’

BigDecimal#truncate returns value of type Bigdecimal. FAILED
Expected false
to equal true

/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/truncate_spec.rb:16:in
block (3 levels) in <top (required)>' /home/mame/work/ruby/spec/rubyspec/library/bigdecimal/truncate_spec.rb:15:in each’
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/truncate_spec.rb:15:in
block (2 levels) in <top (required)>' /home/mame/work/ruby/spec/rubyspec/library/bigdecimal/truncate_spec.rb:4:in <top (required)>’

BigDecimal#truncate returns NaN if self is NaN ERROR
FloatDomainError: Computation results to ‘NaN’(Not a Number)
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/truncate_spec.rb:64:in
truncate' /home/mame/work/ruby/spec/rubyspec/library/bigdecimal/truncate_spec.rb:64:in block (2 levels) in <top (required)>’
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/truncate_spec.rb:4:in
`<top (required)>’

BigDecimal#truncate returns Infinity if self is infinite ERROR
FloatDomainError: Computation results to ‘Infinity’
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/truncate_spec.rb:71:in
truncate' /home/mame/work/ruby/spec/rubyspec/library/bigdecimal/truncate_spec.rb:71:in block (2 levels) in <top (required)>’
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/truncate_spec.rb:4:in
`<top (required)>’


Yusuke E. [email protected]

e$B$A$g$C$H;n$7$F$_$^$7$?!#e(B

r20584 e$B$He(B r20616 e$B$Ge(B BigDecimal#ceil e$B!"e(Btruncate e$B!“e(Bfloor e$B!“e(Bround e$B!“e(Bdiv e$B$Ne(B
e$BLa$jCM$re(B Integer e$B$K$9$kJQ99$,$”$j$^$9$,!”$3$l$@$H5pBg$Je(B BigDecimal e$B$re(B
e$B07$($J$/!”$^$?$O07$$$,LLE]$K$J$j$^$9!#e(B

e$B5pBg$Je(B BigDecimal e$B$Oe(B ceil e$B$,<h$l$J$$e(B

$ ./ruby -rbigdecimal -e ‘p BigDecimal(“1E100000”).ceil’
(e$B5pBg$Je(B Bignum e$B$r3NJ]$7$h$&$H$7$F8G$^$ke(B…)

e$BKM$N$H$3$m$G$O8G$^$k$H$$$&$3$H$O$J$$$G$9$M!#e(BRational
e$B$HHf$Y$k$H$A$g$C$He(B
e$BCY$$$_$?$$$G$9$,!#e(B

b = BigDecimal(“1E100000”).ceil
r = Rational(“1E100000”).ceil
b == r #=> true

e$B<j85$G;n$7$?$H$3$m$G$Oe(B to_r e$B$Ge(B Rational e$B$r7PM3$7$F$+$ie(B
to_i e$B$7$?$[$&$,e(B
e$BB.$$$_$?$$$G$9e(B (e$B$D$^$je(B ceil(0).to_r.to_i
e$B$N$[$&$,!"e(Bceil e$B$h$j$bB.$$e(B)e$B!#$he(B
e$B$&$9$k$Ke(B BigDecimal#to_i
e$B$,CY$$$H$$$&$N$,K<A$G$O$J$$$G$9$+!#e(B

Infinity e$B$,:.$6$k$H$-$O<+J,$GBP=h$9$kI,MW$,$"$ke(B

$ ./ruby -rbigdecimal -e ‘p BigDecimal(“Infinity”).ceil’
-e:1:in ceil': Computation results to 'Infinity' (FloatDomainError) from -e:1:in

Infinity e$B$KBP$7$Fe(B ceil e$B$,<h$l$J$$$N$Oe(B Float
e$B$G$bF1$8$J$N$G$=$l$,4V0c$Ce(B
e$B$F$$$k$J$i!"$=$l$Oe(B BigDecimal e$B$@$1$NLdBj$G$b$J$$$H;W$$$^$9!#e(B

Float#ceil e$B$J$I$,e(B Integer e$B$rJV$9$N$K9g$o$;$k$?$a$@$H;W$$$^$9$,!"$3$NJQ99e(B
e$B$G$Oe(B BigDecimal e$B$N$"$j$,$?$_<+BN$,8:$C$F$7$^$&5$$,$7$^$9!#e(B
e$B$I$&$7$F$b$H$$$&$3$H$G$J$1$l$P!"e(Brevert e$B$rDs0F$7$^$9!#e(B

e$BK>$`$J$ie(B ceil e$B$re(B BigDecimal e$B$N$^$^<h$k$3$H$b=PMh$k$N$Ge(B
(ceil(0))e$B!"Ds0Fe(B
e$B$NM}M3$GD>$A$Ke(B revert e$B$9$kM}M3$O$J$$$h$&$K8+$($^$9!#e(Brubyspec
e$B$N$[$&$OH=e(B
e$B$j$^$;$s!#e(B

2010e$BG/e(B1e$B7ne(B27e$BF|e(B19:12 Tadayoshi F. [email protected]:

e$B<j85$G;n$7$?$H$3$m$G$Oe(B to_r e$B$Ge(B Rational e$B$r7PM3$7$F$+$ie(B to_i e$B$7$?$[$&$,e(B
e$BB.$$$_$?$$$G$9e(B (e$B$D$^$je(B ceil(0).to_r.to_i e$B$N$[$&$,!"e(Bceil e$B$h$j$bB.$$e(B)e$B!#$he(B
e$B$&$9$k$Ke(B BigDecimal#to_i e$B$,CY$$$H$$$&$N$,K<A$G$O$J$$$G$9$+!#e(B

0 e$B$,0l8DB-$j$^$;$s$G$7$?!#e(B1E100000 e$B$O$&$A$@$He(B 8
e$BIC$G$9$M!#e(B1E1000000
e$B$@$H$I$&$G$7$g$&!#e(B
e$B$7$+$7!"e(BRational
e$B$GF0$/$J$i!"2?$+$rD>$;$P$J$s$H$+$J$j$=$&$G$9$M!#e(B

Infinity e$B$,:.$6$k$H$-$O<+J,$GBP=h$9$kI,MW$,$"$ke(B

$ ./ruby -rbigdecimal -e ‘p BigDecimal(“Infinity”).ceil’
-e:1:in ceil': Computation results to 'Infinity' (FloatDomainError) from -e:1:in

Infinity e$B$KBP$7$Fe(B ceil e$B$,<h$l$J$$$N$Oe(B Float e$B$G$bF1$8$J$N$G$=$l$,4V0c$Ce(B
e$B$F$$$k$J$i!"$=$l$Oe(B BigDecimal e$B$@$1$NLdBj$G$b$J$$$H;W$$$^$9!#e(B

BigDecimal e$B$K4X$7$F$Oe(B 1.9.1 e$B$J$iBg>fIW$@$C$?$N$K!"e(B1.9.2
e$B$GBg>fIW$8$ce(B
e$B$J$/$J$C$F$7$^$&$H$$$&LdBj$G$9!#e(B

Float#ceil e$B$J$I$,e(B Integer e$B$rJV$9$N$K9g$o$;$k$?$a$@$H;W$$$^$9$,!“$3$NJQ99e(B
e$B$G$Oe(B BigDecimal e$B$N$”$j$,$?$_<+BN$,8:$C$F$7$^$&5$$,$7$^$9!#e(B
e$B$I$&$7$F$b$H$$$&$3$H$G$J$1$l$P!"e(Brevert e$B$rDs0F$7$^$9!#e(B

e$BK>$`$J$ie(B ceil e$B$re(B BigDecimal e$B$N$^$^<h$k$3$H$b=PMh$k$N$Ge(B (ceil(0))e$B!"Ds0Fe(B
e$B$NM}M3$GD>$A$Ke(B revert e$B$9$kM}M3$O$J$$$h$&$K8+$($^$9!#e(Brubyspec e$B$N$[$&$OH=e(B
e$B$j$^$;$s!#e(B

e$B!VDs0F$NM}M3$GD>$A$Ke(B revert
e$B$9$kM}M3$O$J$$!W$H$$$&$h$j!“!V$I$&$7$F$be(B
e$BJQ$($J$$$H:$$kM}M3$,$”$k!W$G$J$$$N$G$"$l$P!"e(B1.9
e$B7ONs$NESCf$G$`$d$_$Ke(B
e$B;EMMJQ99$7$J$$$[$&$,$$$$$H;W$$$^$9!#M}M3$O0l4S@-$@$1$J$s$G$7$g$&$+!#e(B

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:40168] [Bug #2662] BigDecimal#ceil, etc.
should not return Integer”
on Wed, 27 Jan 2010 02:42:38 +0900, Yusuke E.
[email protected] writes:

|r20584 e$B$He(B r20616 e$B$Ge(B BigDecimal#ceil e$B!“e(Btruncate e$B!“e(Bfloor e$B!“e(Bround e$B!“e(Bdiv e$B$Ne(B
|e$BLa$jCM$re(B Integer e$B$K$9$kJQ99$,$”$j$^$9$,!”$3$l$@$H5pBg$Je(B BigDecimal e$B$re(B
|e$B07$($J$/!”$^$?$O07$$$,LLE]$K$J$j$^$9!#e(B
|
|
| # e$B5pBg$Je(B BigDecimal e$B$Oe(B ceil e$B$,<h$l$J$$e(B
| $ ./ruby -rbigdecimal -e ‘p BigDecimal(“1E100000”).ceil’
| (e$B5pBg$Je(B Bignum e$B$r3NJ]$7$h$&$H$7$F8G$^$ke(B…)
|
| # Infinity e$B$,:.$6$k$H$-$O<+J,$GBP=h$9$kI,MW$,$”$ke(B
| $ ./ruby -rbigdecimal -e ‘p BigDecimal(“Infinity”).ceil’
| -e:1:in ceil': Computation results to 'Infinity' (FloatDomainError) | from -e:1:in

e$B$U$J$P$5$s$,;XE&$7$F$*$i$l$k$h$&$K!"A0<T$O@-G=$NLdBj!“8e<T$Oe(B
e$B@0?t$G$OI=8=$G$-$J$$CMe(B(Infe$B$de(BNaN)e$B$,$”$kLdBj$G$9!#$3$l$i$OJ,$1e(B
e$B$F9M$($^$7$g$&!#e(B

e$B$^$:!"8e<T$+$i$G$9$,!“e(BRubye$B$G$Oe(Bceile$B$J$I$O@0?t$rJV$7$^$9!#$=$le(B
e$B$KB7$($?J}$,e(BBigDecimale$B$H$7$F$N;H$$>!<j$,>e$,$k$G$7$g$&!#$D$^e(B
e$B$j!”$h$jB>$N?tCM$HF1MM$K?6$kIq$&J}$,K>$^$7$$$H8@$&9M$($G$9!#e(B
e$BFC$Ke(BBigDecimale$B$H35G0E*$K6a$$e(BFloate$B$G$Oe(BInfe$B$de(BNaNe$B$ONc30$rH/@8$5e(B
e$B$;$^$9$+$i!#e(B

e$BA0<T$Oe(BBigDecimal#to_ie$B$,!“J8;zNs2=$7$F$=$l$r%Q!<%9$9$k$H$$$&e(B
e$B<jCJ$r;H$C$F$$$k$;$$$G$9!#$3$l$O=c?h$K<jH4$-$G$9$+$i!”$=$l$re(B
e$B2~A1$9$l$P$9$`$H;W$$$^$9!#e(B

e$B$H$$$&$3$H$G!“%j%P!<%H$NI,MW$O$J$/!”$"$($F$$$&$J$i$P!"8=:_e(B
BigDecimal#to_ie$B$,e(BInfe$B$de(BNaNe$B$KBP$7$Fe(Bnile$B$rJV$7$F$$$k$N$rNc30$K$9e(B
e$B$k$H$$$&JQ99$r2C$($k$Y$-$J$s$8$c$J$$$+$H;W$$$^$9!#e(B

                            e$B$^$D$b$He(B e$B$f$-$R$me(B /:|)

e$B1sF#$G$9!#e(B

2010e$BG/e(B1e$B7ne(B28e$BF|e(B11:34 Yukihiro M.
[email protected]:

| # e$B5pBg$Je(B BigDecimal e$B$Oe(B ceil e$B$,<h$l$J$$e(B
| $ ./ruby -rbigdecimal -e ‘p BigDecimal(“1E100000”).ceil’
| (e$B5pBg$Je(B Bignum e$B$r3NJ]$7$h$&$H$7$F8G$^$ke(B…)
|
| # Infinity e$B$,:.$6$k$H$-$O<+J,$GBP=h$9$kI,MW$,$"$ke(B
| $ ./ruby -rbigdecimal -e ‘p BigDecimal(“Infinity”).ceil’
| -e:1:in ceil': Computation results to 'Infinity' (FloatDomainError) | from -e:1:in

e$B$H$$$&$3$H$G!"%j%P!<%H$NI,MW$O$J$/!"e(B

e$BN;2r$7$^$7$?!#e(B

e$B$"$($F$$$&$J$i$P!"8=:_e(B
BigDecimal#to_ie$B$,e(BInfe$B$de(BNaNe$B$KBP$7$Fe(Bnile$B$rJV$7$F$$$k$N$rNc30$K$9e(B
e$B$k$H$$$&JQ99$r2C$($k$Y$-$J$s$8$c$J$$$+$H;W$$$^$9!#e(B

Yugui e$B$5$s!"H=CG$r$*4j$$$7$^$9!#e(B

0 e$B$,0l8DB-$j$^$;$s$G$7$?!#e(B1E100000 e$B$O$&$A$@$He(B 8 e$BIC$G$9$M!#e(B1E1000000
e$B$@$H$I$&$G$7$g$&!#e(B
e$B$7$+$7!"e(BRational e$B$GF0$/$J$i!"2?$+$rD>$;$P$J$s$H$+$J$j$=$&$G$9$M!#e(B

Rational e$B7PM3$@$He(B 0
e$B$R$H$DA}$($F$b$=$3$=$3$NB.EY$GJV$k$h$&$G$9$M!#e(B

e$B4X78$"$k$+$o$+$i$J$$$1$I!“e(BBigDecimal#**
e$B$,7k9=CY$+$C$?5-21$,$”$j$^$9!#e(B
e$B$"$H!"e(B

BigDecimal(‘3’) ** BigDecimal(‘3’)

TypeError: wrong argument type BigDecimal (expected Fixnum)

BigDecimal(‘3’) ** 3.3

TypeError: wrong argument type Float (expected Fixnum)

e$B$H$$$C$?$H$3$m$G!“e(BFixnum
e$B$KHf$Y$F$b@)8B$bB?$$$7!”<BAu$K$$$m$$$m<jH4$-$,e(B
e$B$"$k$C$F$3$H$J$N$+$J!#e(B

e$B!VDs0F$NM}M3$GD>$A$Ke(B revert e$B$9$kM}M3$O$J$$!W$H$$$&$h$j!"!V$I$&$7$F$be(B
e$BJQ$($J$$$H:$$kM}M3$,$"$k!W$G$J$$$N$G$"$l$P!"e(B1.9 e$B7ONs$NESCf$G$`$d$_$Ke(B
e$B;EMMJQ99$7$J$$$[$&$,$$$$$H;W$$$^$9!#M}M3$O0l4S@-$@$1$J$s$G$7$g$&$+!#e(B

e$BEz$($kN)>l$K$J$$$1$I!“M}M3$O0l4S@-$G4V0c$C$F$J$$$H;W$$$^$9!#C1$K0l4S@-e(B
e$B$rM?$($F$_$?!”$H$$$&$3$H$G$O$J$/!"0l4S@-$,I,MW$@$H;W$C$?$+$i$=$&$7$?$Ne(B
e$B$@$H;W$$$^$9$,!#8_49@-$r3NJ]$9$Y$-$J$N$+$I$&$+$O9M$(J}<!Bh$@$H;W$&$N$Ge(B
e$BKM$K$OH=$j$^$;$s$,!#e(B

On 1/28/10 8:24 PM, Yusuke ENDOH wrote:

e$B$H$$$&$3$H$G!"%j%P!<%H$NI,MW$O$J$/!"e(B
(snip)

e$B$"$($F$$$&$J$i$P!"8=:_e(B
BigDecimal#to_ie$B$,e(BInfe$B$de(BNaNe$B$KBP$7$Fe(Bnile$B$rJV$7$F$$$k$N$rNc30$K$9e(B
e$B$k$H$$$&JQ99$r2C$($k$Y$-$J$s$8$c$J$$$+$H;W$$$^$9!#e(B

Yugui e$B$5$s!"H=CG$r$*4j$$$7$^$9!#e(B

e$BN>J}$H$b!"$^$D$b$H$5$s$K;?F1$7$^$9!#e(B

e$B1sF#$G$9!#e(B

2010e$BG/e(B1e$B7ne(B30e$BF|e(B14:02 Yugui (Yuki S.)
[email protected]:

On 1/28/10 8:24 PM, Yusuke ENDOH wrote:

e$B$H$$$&$3$H$G!"%j%P!<%H$NI,MW$O$J$/!“e(B
(snip)
e$B$”$($F$$$&$J$i$P!"8=:_e(B
BigDecimal#to_ie$B$,e(BInfe$B$de(BNaNe$B$KBP$7$Fe(Bnile$B$rJV$7$F$$$k$N$rNc30$K$9e(B
e$B$k$H$$$&JQ99$r2C$($k$Y$-$J$s$8$c$J$$$+$H;W$$$^$9!#e(B

Yugui e$B$5$s!"H=CG$r$*4j$$$7$^$9!#e(B

e$BN>J}$H$b!"$^$D$b$H$5$s$K;?F1$7$^$9!#e(B

e$B$*JV;v$“$j$,$H$&$4$6$$$^$9!#e(B
e$B$D$^$j!”$$$:$le(B 1.9.1 e$B$K%P%C%/%]!<%H$5$l$k$H$$$&$3$H$G$9$M!#e(B
e$B$=$l$J$ie(B 1.9 e$B$+$i$N;EMMJQ99$H$$$&$3$H$Ge(B rubyspec
e$B$r99?7$7$h$&$H;W$$$^$9!#e(B

2010/1/30 Yusuke ENDOH [email protected]:

e$B$*JV;v$“$j$,$H$&$4$6$$$^$9!#e(B
e$B$D$^$j!”$$$:$le(B 1.9.1 e$B$K%P%C%/%]!<%H$5$l$k$H$$$&$3$H$G$9$M!#e(B
e$B$=$l$J$ie(B 1.9 e$B$+$i$N;EMMJQ99$H$$$&$3$H$Ge(B rubyspec e$B$r99?7$7$h$&$H;W$$$^$9!#e(B

e$B;EMM$N%_%9$O86B’E*$Ke(B1.9.1e$B$K$O%P%C%/%]!<%H$7$J$$$3$H$K7h$a$?$N$G!“$7$^$;$s!#e(B
e$B$?$@!”$3$l$Oe(B1.9.1e$B$H$$$&<BAu$N%P%0$H07$C$FNI$$$H;W$$$^$9!#$^$?!"e(B1.9.2e$B$+$i5sF0$rJQ99$9$k$3$H$K0[O@$O$J$$$G$9!#e(B

e$B$H$$$&0U?^$G$7$?!#e(B

e$B%A%1%C%He(B #2662 e$B$,99?7$5$l$^$7$?!#e(B (by Yusuke E.)

e$B%9%F!<%?%9e(B Opene$B$+$ie(BRejectede$B$KJQ99e(B

e$B1sF#$G$9!#e(B

rubyspec e$BB&$GBP=h$7$?$N$G!"$3$N%A%1%C%H$Oe(B reject e$B$7$^$9!#e(B


Yusuke E. [email protected]

http://redmine.ruby-lang.org/issues/show/2662