Bigdecimal

bigdecimal/math.rb e$B$Ne(B BigMath e$B$O!“MxMQ<T$,e(B include
e$B$7$F$D$+$&$3$H$rA0e(B
e$BDs$H$7$F$$$^$9$,!”$$+$7$J$3$H$G!"$=$l$J$i:G=i$+$i$=$N$h$&$K$7$F$$1$Pe(B
e$B$h$$$O$:$G$9!#K\Ev$O!"e(BBigMath
e$B$N%a%=%C%I$r%b%8%e!<%k4X?t$K$7$F$*$1$P!"e(B
Math e$BF1MM!"e(Binclude
e$B$7$F$b$7$J$/$F$b!"MxMQ<T$NH=CG$G$D$+$$J,$1$F$-$^$9!#e(B
BigMath e$B$N%a%=%C%I$O%b%8%e!<%k4X?t$K$7$?$i$$$$$H;W$$$^$9!#e(B

bigdecimal/util.rb e$B$Ke(B Integer#to_d e$B$,$"$j$^$;$s!#e(B

bigdecimal/util.rb e$B$Ne(B Float#to_d e$B$O!“e(BBigDecimal(self.to_s)
e$B$7$F$$$k$@e(B
e$B$1$G$9!#$o$6$H4E$/$7$F$$$k2DG=@-$b$”$j$=$&$G$9$,!"$b$C$H$A$c$s$H$9$k$3e(B
e$B$H$b$G$-$k$H;W$$$^$9!#=$@5$9$k$H!"$&$A$G$Oe(B Math::PI.to_d.to_f ==
Math::PI e$B$,@.$jN)$A$^$7$?!#e(B

Index: ext/bigdecimal/lib/bigdecimal/util.rb

— ext/bigdecimal/lib/bigdecimal/util.rb (revision 15420)
+++ ext/bigdecimal/lib/bigdecimal/util.rb (working copy)
@@ -15,8 +15,31 @@


class Float < Numeric
+

  • unless defined?(decode)
  • def decode
  •  f, n = Math.frexp(self)
    
  •  f = Math.ldexp(f, Float::MANT_DIG).to_i
    
  •  n -= Float::MANT_DIG
    
  •  return f, n
    
  • end
  • private :decode
  • end
  • def to_d
  • f, n = decode
  • f.to_s.to_d * Float::RADIX.to_s.to_d ** n
  • end

+end
+
+class Integer < Numeric

  • def to_d
    BigDecimal(self.to_s)
    end
    end
    Index: ext/bigdecimal/lib/bigdecimal/math.rb
    ===================================================================
    — ext/bigdecimal/lib/bigdecimal/math.rb (revision 15420)
    +++ ext/bigdecimal/lib/bigdecimal/math.rb (working copy)
    @@ -30,6 +30,8 @@

module BigMath

  • module_function
  • Computes the square root of x to the specified number of digits of

    precision.

Integer e$B$de(B Float e$B$KHf$Y$k$H!"e(BBigDicimal() e$B$O!“e(B1
e$B$de(B 1.1 e$B$r<u$1$D$1$J$$!“e(B
e$B$H$$$&$3$H$,$”$j$^$9!#e(BBigDecimal e$B<+?H$b<u$1$D$1$^$;$s!#e(Bruby
e$B$G$O!”%3%se(B
e$B%9%H%i%/%?$H$$$&$h$j$O!“JQ494o$H$7$F8+Jo$5$l$^$9$7!”<B:]!“ITJX$@$H;W$&e(B
e$B$N$G!”$J$s$H$+$7$?$[$&$,$$$$$H;W$$$^$9!#e(B

BigDecimal e$B$G$O!"e(Bdiv e$B$de(B divmod
e$B$N$R$H$DL$NMWAG!"e(Bfloore$B!"e(Bceile$B!"e(Btruncatee$B!“e(B
round
e$B$NCM$J$I$,@0?t$G$O$”$j$^$;$s!#$3$l$O!"B>$N?tCM%/%i%9$H0[$J$k?6Iqe(B
e$B$$$G$9!#e(B

e$B$=$l$+$i!“e(Brequire ‘bigdecimal/util’ e$B$H$+e(B require
‘bigdecimal/math’ e$B$He(B
e$B$+$9$k$N$,LLE]$G$9!#$3$l$/$i$$$O!”:G=i$+$i$"$C$F$h$$$H;W$$$^$7$?!#e(B

e$B2>$Ke(BBigDecimal(1.1)e$B$r!“e(B(e$BFs?J>.?t$H$7$Fe(B)e$B<u$1IU$1$k$H!”!Ve(BBigDecimale$B$G$O!“e(B
Float(e$B%j%F%i%ke(B)e$B$N@:EY$d$=$l$K5/0x$9$k8m:9$H$OL51o$G$9!W$H$$$&8=:_$HL7=b$9$ke(B
e$B2DG=@-$,$”$j$^$9$M!#e(B

bigdecimal/util.rb e$B$K$Oe(B Float#to_d
e$B$,$"$j$^$9$,!"@FF#$5$s$N$$$o$l$k$he(B
e$B$&$J$3$H$,$"$k$N$G!":n<T$H$7$F$O!"$"$/$^$G!V$*$^$1!W$G$"$k!"$H$7$?$$$Ne(B
e$B$+$b$7$l$^$;$s$M!#e(B

e$B>e5-$G$"$l$P!“e(BBigDecimal(1.1.to_s)e$B$H$J$k$h$&$KFbIt$G$$$8$k<j$b$”$j$^$9$,!"e(B
e$B$?$H$($Pe(B BigDecimlal(3.14159265358979323846.to_s) e$B$N7k2L$O!"F~NO$N@:EY$,e(B
e$BMn$A$F$7$^$&$H$$$&E@$G%f!<%6$N0U?^$9$k$b$N$G$O$J$$$+$b$7$l$^$;$s!#e(B

e$B8=:_$Ne(B Float#to_d
e$B$G$O!"$^$5$K$=$N$h$&$K$7$F$$$k$N$G$9$,!"$=$NIbF0>.?te(B
e$BE@?t$,@5$7$$$H$7$F!"0l1~@53N$KJQ49$9$k$3$H$O2DG=$G$9$M!#JQ494o$@$H9M$(e(B
e$B$l$P!"G<F@$G$-$k$N$G$O$J$$$+$H;W$$$^$9!#e(B

e$B>e5-$r9M$($k$H!"e(BBigDecimal()e$B$Ge(BFloate$B$r<u$1IU$1$k$3$H$O!"e(BBigDecimale$B$,;}$De(B
e$B!Ve(B10e$B?J1i;;$K$h$k@53N$5!W$H$$$&@-<A!&D9=j$HL7=b$7$+$ML5$$$H$$$&E@$G$A$g$C$He(B
e$B$@$1!"G:$^$7$$$+$b$7$l$^$;$s!#e(B

e$B$?$@!VJQ494o!W$H$$$&4|BT$H$=$l$K$h$kMxJX@-$r9M$($k$H!“Nc$($Pe(BBigDecimal.newe$B$Oe(B
Floate$B$r<h$i$J$$$,e(BBigDecimal()e$B$G$O<h$kI,MW@-$,$”$k$@$m$&!"$H$$$&$N$b$"$jF@$k$Ne(B
e$B$+$b$7$l$^$;$s!#e(B

e$B$=$l$,$$$$$+$b$7$l$^$;$s!#e(B

e$B$=$NB>$3$NJV?.$G>JN,$5$;$F$$$?$@$$$?ItJ,$b4^$a!"$U$J$P$5$s$K$h$k0lO"$Ne(B
BigDecimale$B$KBP$9$k0U8+!&5DO@$rGR8+$7$F$$j$^$9$,!"<+J,$,e(B1.8e$B%j%j!<%9$NA0e(B
(e$B$C$F$b$&e(B5e$BG/A0$G$9$M!De(B)e$B$KI=L@$7$?0U8+$H$H$+$J$j$NItJ,$,6&DL$7$F$$$k$h$&$Ke(B
e$B8+$($^$9$N$G!"4pK\E
$K;?@.$G$9!#e(B

e$B$"$j$,$H$&$4$6$$$^$9!#<B$O!"KM<+?H$bF1$8$h$&$J$3$H$r2a5n$K7+$jJV$78@$Ce(B
e$B$F$k$O$:$J$s$G$9$,!#e(Bruby e$B$N?tCM7O$OJQ$i$J$$$h$&$G!#e(B

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

In message “Re: [ruby-dev:33698] Re: bigdecimal”
on Mon, 11 Feb 2008 10:49:04 +0900, Tadayoshi F.
[email protected] writes:

|> e$B$=$NB>$3$NJV?.$G>JN,$5$;$F$$$?$@$$$?ItJ,$b4^$a!“$U$J$P$5$s$K$h$k0lO”$Ne(B
|> BigDecimale$B$KBP$9$k0U8+!&5DO@$rGR8+$7$F$$j$^$9$,!"<+J,$,e(B1.8e$B%j%j!<%9$NA0e(B
|> (e$B$C$F$b$&e(B5e$BG/A0$G$9$M!De(B)e$B$KI=L@$7$?0U8+$H$H$+$J$j$NItJ,$,6&DL$7$F$$$k$h$&$Ke(B
|> e$B8+$($^$9$N$G!"4pK\E
$K;?@.$G$9!#e(B
|
|e$B$"$j$,$H$&$4$6$$$^$9!#<B$O!"KM<+?H$bF1$8$h$&$J$3$H$r2a5n$K7+$jJV$78@$Ce(B
|e$B$F$k$O$:$J$s$G$9$,!#e(Bruby e$B$N?tCM7O$OJQ$i$J$$$h$&$G!#e(B

e$B$4LBOG$r$$+$1$7$^$9!#;d<+?H$,?tCM7O$K<e$$$N$,:GBg$N860x$J$se(B
e$B$G$9$,!";d$,<j$,=P$J$$0J>e!“e(Brationale$B$be(Bcomplexe$B$be(Bbigdecimale$B$be(B
e$BBT$A$KF~$i$6$k$rF@$J$$$H$$$&;v>p$,$”$j$^$9!#$b$&$A$g$C$H=EE@e(B
e$BE
$K<j$rF~$l$?J}$,$$$$$s$G$7$g$&$+$M$(!#e(B

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

e$B:XF#$H?=$7$^$9!#e(B

On Sun, 10 Feb 2008 08:02:59 +0900
Tadayoshi F. [email protected] wrote:

Integer e$B$de(B Float e$B$KHf$Y$k$H!"e(BBigDicimal() e$B$O!"e(B1 e$B$de(B 1.1 e$B$r<u$1$D$1$J$$!“e(B
e$B$H$$$&$3$H$,$”$j$^$9!#e(B

e$B2>$Ke(BBigDecimal(1.1)e$B$r!“e(B(e$BFs?J>.?t$H$7$Fe(B)e$B<u$1IU$1$k$H!”!Ve(BBigDecimale$B$G$O!“e(B
Float(e$B%j%F%i%ke(B)e$B$N@:EY$d$=$l$K5/0x$9$k8m:9$H$OL51o$G$9!W$H$$$&8=:_$HL7=b$9$ke(B
e$B2DG=@-$,$”$j$^$9$M!#e(B

e$B>e5-$G$"$l$P!“e(BBigDecimal(1.1.to_s)e$B$H$J$k$h$&$KFbIt$G$$$8$k<j$b$”$j$^$9$,!"e(B
e$B$?$H$($Pe(B BigDecimlal(3.14159265358979323846.to_s)
e$B$N7k2L$O!"F~NO$N@:EY$,e(B
e$BMn$A$F$7$^$&$H$$$&E@$G%f!<%6$N0U?^$9$k$b$N$G$O$J$$$+$b$7$l$^$;$s!#e(B

e$B>e5-$r9M$($k$H!"e(BBigDecimal()e$B$Ge(BFloate$B$r<u$1IU$1$k$3$H$O!"e(BBigDecimale$B$,;}$De(B
e$B!Ve(B10e$B?J1i;;$K$h$k@53N$5!W$H$$$&@-<A!&D9=j$HL7=b$7$+$ML5$$$H$$$&E@$G$A$g$C$He(B
e$B$@$1!"G:$^$7$$$+$b$7$l$^$;$s!#e(B

e$B$?$@!VJQ494o!W$H$$$&4|BT$H$=$l$K$h$kMxJX@-$r9M$($k$H!“Nc$($Pe(BBigDecimal.newe$B$Oe(B
Floate$B$r<h$i$J$$$,e(BBigDecimal()e$B$G$O<h$kI,MW@-$,$”$k$@$m$&!“$H$$$&$N$b$”$jF@$k$Ne(B
e$B$+$b$7$l$^$;$s!#e(B

e$B$=$NB>$3$NJV?.$G>JN,$5$;$F$$$?$@$$$?ItJ,$b4^$a!“$U$J$P$5$s$K$h$k0lO”$Ne(B
BigDecimale$B$KBP$9$k0U8+!&5DO@$rGR8+$7$F$$j$^$9$,!"<+J,$,e(B1.8e$B%j%j!<%9$NA0e(B
(e$B$C$F$b$&e(B5e$BG/A0$G$9$M!De(B)e$B$KI=L@$7$?0U8+$H$H$+$J$j$NItJ,$,6&DL$7$F$$$k$h$&$Ke(B
e$B8+$($^$9$N$G!"4pK\E
$K;?@.$G$9!#e(B

e$B>.NS$G$9!#e(B

e$BM>M5$,L5$$$N$G!"%A%g%C%H$@$1e(B…

----- Original Message -----
From: “Yukihiro M.” [email protected]
Subject: [ruby-dev:33705] Re: bigdecimal

e$B3X9;$G$Oe(B 2 e$B$G$be(B 2.0
e$B$G$b%^%k$rLc$($?!%!%!%!“$H$$$&$N$O$5$F$$-!"e(B
truncate
e$BEy$N7k2L$,$,e(BIntegere$B$H$$$&$N$O#2?Je(BFloate$B$NFC0[@-$+$ie(B
e$B$-$F$$$k$N$G$O!)!!J#?t%/%i%9$K$^$?$,$k$h$j!“K\Mh0l$D$N%/%i%9e(B
e$BFb$GJD$8$F$$$?$[$&$,<+A3$H;W$$$^$9!#e(B
e$B$=$l$K!“e(BBigDecimale$B$Oe(BFloate$B$N5!G=$r3HD%$7$F$$$kItJ,$b$”$k$o$1e(B
e$B$G!“e(BInteger
e$B$H$$$&$N$O!V5!G=3HD%%@%a!W$H$$$&OC$J$s$G$7$g$&$+$M$'!)e(B
e$B$=$l$H$b!”!VLa$jCM$,@0?t$N$H$-$@$1$Oe(BIntegere$B$K!W$H$$$&OC$J$i%”%le(B
e$B$G$7$Fe(B…e$B!#e(B
e$B$=$l$H!Je(Butil.rbe$B$O$H$b$+$/!K!"e(Bmath.rbe$B$O%5%s%W%kE
0LCV$E$1!J=>$C$F!“e(B
e$B%=!<%9$O2DG=$J8B$j$K%7%s%W%k!K$G$”$j!”>!<j$K%m!<%I$5$l$k$N$Oe(B
e$BNI$/$J$$$H$$$&$3$H$G0JA0!J#5G/A0!)!K!“G<F@$N>e$G7hCe$7$?$?$O$:e(B
e$B$@$C$?$H5-21$7$F$$$k$N$G$9$,e(B…e$B!#e(B
e$B$b$A$m$s!“e(Bsin/cose$BEy$NG$0U@:EY%”%k%4%j%:%$N7hDjHG$,$"$l$Pe(B e$BAH$_9~$5$$OBg$$$K$”$j$^$9$,!“8=>uHG$r2!$7IU$1$kM&5$$Oe(B
e$B$”$j$^$;$s!#e(B

e$B>.NSe(B e$BLPM:e(B

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

In message “Re: [ruby-dev:33709] Re: bigdecimal”
on Tue, 12 Feb 2008 12:31:31 +0900, “Shigeo Kobayashi”
[email protected] writes:

|e$B3X9;$G$Oe(B 2 e$B$G$be(B 2.0 e$B$G$b%^%k$rLc$($?!%!%!%!"$H$$$&$N$O$5$F$*$-!"e(B
|truncate e$BEy$N7k2L$,$,e(BIntegere$B$H$$$&$N$O#2?Je(BFloate$B$NFC0[@-$+$ie(B
|e$B$-$F$$$k$N$G$O!)!!J#?t%/%i%9$K$^$?$,$k$h$j!“K\Mh0l$D$N%/%i%9e(B
|e$BFb$GJD$8$F$$$?$[$&$,<+A3$H;W$$$^$9!#e(B
|e$B$=$l$K!“e(BBigDecimale$B$Oe(BFloate$B$N5!G=$r3HD%$7$F$$$kItJ,$b$”$k$o$1e(B
|e$B$G!“e(BInteger e$B$H$$$&$N$O!V5!G=3HD%%@%a!W$H$$$&OC$J$s$G$7$g$&$+$M$'!)e(B
|e$B$=$l$H$b!”!VLa$jCM$,@0?t$N$H$-$@$1$Oe(BIntegere$B$K!W$H$$$&OC$J$i%”%le(B
|e$B$G$7$Fe(B…e$B!#e(B

e$B!VLa$jCM$,L@$i$+$K@0?t$J$b$N$K4X$7$F$Oe(BIntegere$B$K!W$H$$$&OC$Ge(B
e$B$9!#6qBNE*$K$Oe(Bfloore$B$H$+$G$9$M!#La$jCM$,$?$^$?$^@0?t$K$J$C$Fe(B
e$B$7$^$C$?$b$N$K4X$7$F$OFC$Ke(BIntegere$B$K$9$k$Y$-$H$O;W$$$^$;$s!#e(B

e$B3X9;$G$Oe(B 2 e$B$G$be(B 2.0 e$B$G$b%^%k$rLc$($?!%!%!%!"$H$$$&$N$O$5$F$*$-!"e(B
truncate e$BEy$N7k2L$,$,e(BIntegere$B$H$$$&$N$O#2?Je(BFloate$B$NFC0[@-$+$ie(B
e$B$-$F$$$k$N$G$O!)!!J#?t%/%i%9$K$^$?$,$k$h$j!"K\Mh0l$D$N%/%i%9e(B
e$BFb$GJD$8$F$$$?$[$&$,<+A3$H;W$$$^$9!#e(B

BigDecimal e$B$,JD$8$F$k!"$H$$$&$N$O!“e(BBigDecimal
e$B$N;EMM$rFI$s$G46$8$k$3$He(B
e$B$G$9!#B>$N8@8l$G$b$=$&$G$9$,!”@0?t$@$1$D$+$&!"IbF0>.?tE@?t$@$1$D$+$&!“e(B
e$B$H$$$&$3$H$O$J$$$o$1$G!”$=$&$$$&$b$N$,0lBN$H$J$C$F!"7W;;$r$3$J$7$F$$$ke(B
e$B$H;W$$$^$9!#e(B

BigDecimal
e$B$H$O$=$&$$$&$b$N$@!"$H$$$&$3$H$J$N$+$b$7$l$^$;$s$,!"FC$Ke(B
ruby e$B$Ne(B Numeric e$B$J%/%i%9$H$7$F$_$F$b!"0[<A$J46$8$,$7$^$9!#e(B

e$B$=$l$K!“e(BBigDecimale$B$Oe(BFloate$B$N5!G=$r3HD%$7$F$$$kItJ,$b$”$k$o$1e(B
e$B$G!“e(BInteger e$B$H$$$&$N$O!V5!G=3HD%%@%a!W$H$$$&OC$J$s$G$7$g$&$+$M$’!)e(B
e$B$=$l$H$b!”!VLa$jCM$,@0?t$N$H$-$@$1$Oe(BIntegere$B$K!W$H$$$&OC$J$i%"%le(B
e$B$G$7$Fe(B…e$B!#e(B

Float
e$B$b4^$a$F!"$=$&$$$&Iw$K$J$C$F$$$k$o$1$G!“3HD%$J$i!”$d$O$j$*$+$7$$!"e(B
e$B9M$($k$Y$-$G$7$g$&!#e(B

e$B$=$l$H!Je(Butil.rbe$B$O$H$b$+$/!K!“e(Bmath.rbe$B$O%5%s%W%kE*0LCV$E$1!J=>$C$F!“e(B
e$B%=!<%9$O2DG=$J8B$j$K%7%s%W%k!K$G$”$j!”>!<j$K%m!<%I$5$l$k$N$Oe(B
e$BNI$/$J$$$H$$$&$3$H$G0JA0!J#5G/A0!)!K!"G<F@$N>e$G7hCe$7$?$?$O$:e(B
e$B$@$C$?$H5-21$7$F$$$k$N$G$9$,e(B…e$B!#e(B

e$B$=$&$J$N$G$9$+!#<B$O$=$N$3$m$O!"$"$^$jM>M5$,$J$/$F!"5DO@$rFI$s$G$J$$$se(B
e$B$G$9$h!#5$$,$D$$$?$i!"e(BBigDecimal e$B$,E:IU$5$l$F$$$^$7$?!#e(B

e$B$7$+$7$J$,$i!“0LCVIU$1$,$I$&$G$”$l!“e(BBigMath
e$B$N4X?t$,!”%b%8%e!<%k4X?t$Ge(B
e$B$"$C$F!"$$$1$J$$M}M3$,$o$+$j$^$;$s!#$"$H!"e(BFloat#to_d e$B$,!"e(B
BigDecimal(self.to_s) e$B$J$3$H$H$+!#e(B

e$B$b$A$m$s!“e(Bsin/cose$BEy$NG$0U@:EY%”%k%4%j%:%$N7hDjHG$,$"$l$Pe(B e$BAH$_9~$5$$OBg$$$K$"$j$^$9$,!“8=>uHG$r2!$7IU$1$kM&5$$Oe(B
e$B$”$j$^$;$s!#e(B

e$B$"$/$^$G<+?.$,$J$/!"%5%s%W%kE*$J$b$N$G$"$k$H$$$&$J$i!"$$$C$=%$%s%9%H!<e(B
e$B%k$7$J$$$[$&$,$$$$$N$G$Oe(B?

e$B>.NS$G$9!#>/$7DI2C$7$F$*$-$^$9!#e(B

----- Original Message -----
From: “Tadayoshi F.” [email protected]
Subject: [ruby-dev:33716] Re: bigdecimal

BigDecimal e$B$,JD$8$F$k!"$H$$$&$N$O!“e(BBigDecimal e$B$N;EMM$rFI$s$G46$8$k$3$He(B
e$B$H$$$&$3$H$G!”;EMM$rFI$s$G0U?^$O46$8$F$$$?$@$$$?$H$$$&$3$H$G!De(B

e$B$G$9!#B>$N8@8l$G$b$=$&$G$9$,!"@0?t$@$1$D$+$&!"IbF0>.?tE@?t$@$1$D$+$&!“e(B
e$B$H$$$&$3$H$O$J$$$o$1$G!”$=$&$$$&$b$N$,0lBN$H$J$C$F!"7W;;$r$3$J$7$F$$$ke(B
e$B$H;W$$$^$9!#e(B
e$B<+J,$H$7$F$O!V$=$&$$$&$b$N$,0lBN$H$J$C$F!W$G!VJD$8$F$$$k!W$HI=8=$7$?Lu$G$9!#e(B

e$B$G!“e(BInteger e$B$H$$$&$N$O!V5!G=3HD%%@%a!W$H$$$&OC$J$s$G$7$g$&$+$M$'!)e(B
e$B$=$l$H$b!”!VLa$jCM$,@0?t$N$H$-$@$1$Oe(BIntegere$B$K!W$H$$$&OC$J$i%"%le(B
e$B$G$7$Fe(B…e$B!#e(B

Float e$B$b4^$a$F!“$=$&$$$&Iw$K$J$C$F$$$k$o$1$G!“3HD%$J$i!”$d$O$j$$+$7$$!"e(B
e$B9M$($k$Y$-$G$7$g$&!#e(B
e$B;EMM$O=OCN$5$l$F$$$k$h$&$J$N$G!"e(Btruncate
e$B$NNc$r=P$7$^$9!JB>$bF1$8$G$9!Ke(B
e$B!!e(Brequire “bigdecimal”
e$B!!e(Ba=BigDecimal(“123.456”) # ==> 0.123456E3
e$B!!e(Ba.truncate # 1) ==> 0.123E3
e$B!!e(Ba.truncate(0) #e$B!!e(B2)==> 0.123E3
e$B!!e(Ba.truncate(1) #e$B!!e(B3) ==> 0.1234E3
e$B!!e(Ba.truncate(-1) # 4)==> 0.12E3
e$B$3$N!V3HD%!W$,$
$+$7$$$G$9$+!)e(B
e$B;d$O!”$3$l$3$=!VGd$j!JG$0U@:EY!K!W$H;W$C$F$k$s$G$9$1$I$M$'!#e(B
e$B#3!K$N%1!<%9$G$O#I#n#t#e#g#e#r$rJV$9$3$H$O$G$-$^$;$s!#e(B

e$B$7$+$7$J$,$i!“0LCVIU$1$,$I$&$G$”$l!“e(BBigMath e$B$N4X?t$,!”%b%8%e!<%k4X?t$Ge(B
e$B$“$C$F!”$$$1$J$$M}M3$,$o$+$j$^$;$s!#$"$H!"e(BFloat#to_d e$B$,!“e(B
BigDecimal(self.to_s) e$B$J$3$H$H$+!#e(B
e$B$3$l$OFC$KM}M3$O$”$j$^$;$s!#e(B

e$B$“$/$^$G<+?.$,$J$/!”%5%s%W%kE*$J$b$N$G$“$k$H$$$&$J$i!”$$$C$=%$%s%9%H!<e(B
e$B%k$7$J$$$[$&$,$$$$$N$G$Oe(B?
e$B$$$^$5$i$H$$$&5$$b$7$J$$$G$b$“$j$^$;$s$,!V<+?.$,$J$/!W$H$$$&$3$H$G$Oe(B
e$B$”$j$^$;$s!#!!!V7W;;$G$-$k!W$H$$$&Nc$G$9!#e(B

e$B>.NSe(B e$BLPM:e(B

BigDecimal e$B$,JD$8$F$k!"$H$$$&$N$O!“e(BBigDecimal e$B$N;EMM$rFI$s$G46$8$k$3$He(B
e$B$H$$$&$3$H$G!”;EMM$rFI$s$G0U?^$O46$8$F$$$?$@$$$?$H$$$&$3$H$G!De(B

e$B$G$9!#B>$N8@8l$G$b$=$&$G$9$,!"@0?t$@$1$D$+$&!"IbF0>.?tE@?t$@$1$D$+$&!“e(B
e$B$H$$$&$3$H$O$J$$$o$1$G!”$=$&$$$&$b$N$,0lBN$H$J$C$F!"7W;;$r$3$J$7$F$$$ke(B
e$B$H;W$$$^$9!#e(B
e$B<+J,$H$7$F$O!V$=$&$$$&$b$N$,0lBN$H$J$C$F!W$G!VJD$8$F$$$k!W$HI=8=$7$?Lu$G$9!#e(B

e$B$h$/$o$+$j$^$;$s$,!"e(B

e$B$-$F$$$k$N$G$O!)!!J#?t%/%i%9$K$^$?$,$k$h$j!"K\Mh0l$D$N%/%i%9e(B
e$BFb$GJD$8$F$$$?$[$&$,<+A3$H;W$$$^$9!#e(B

e$B$R$H$D$N%/%i%9Fb$GJD$8$F$$$k$o$1$G$9$h$M!#e(B

e$B;EMM$O=OCN$5$l$F$$$k$h$&$J$N$G!"e(Btruncate e$B$NNc$r=P$7$^$9!JB>$bF1$8$G$9!Ke(B

e$B=OCN$7$F$$$^$;$s$,!#e(B

e$B!!e(Brequire “bigdecimal”
e$B!!e(Ba=BigDecimal(“123.456”) # ==> 0.123456E3
e$B!!e(Ba.truncate # 1) ==> 0.123E3
e$B!!e(Ba.truncate(0) #e$B!!e(B2)==> 0.123E3
e$B!!e(Ba.truncate(1) #e$B!!e(B3) ==> 0.1234E3
e$B!!e(Ba.truncate(-1) # 4)==> 0.12E3
e$B$3$N!V3HD%!W$,$*$+$7$$$G$9$+!)e(B

e$B$s!<!"$?$V$s!"$=$3$O4V0c$C$F$$$?$H;W$$$^$9!#3HD%$G$O$J$/!"$^$C$?$/$NFHe(B
e$B<+;EMM$G$9!#e(B

e$B;d$O!"$3$l$3$=!VGd$j!JG$0U@:EY!K!W$H;W$C$F$k$s$G$9$1$I$M$’!#e(B
e$B#3!K$N%1!<%9$G$O#I#n#t#e#g#e#r$rJV$9$3$H$O$G$-$^$;$s!#e(B

Integer
e$B$rJV$9$Y$-$@$C$?$H;W$$$^$9!#$=$&$$$&5!G=$,I,MW$J$i!"JL$K$9$k$+!"e(B
e$B>/$J$/$H$b0z?t$J$7$G8F$P$l$?$i!"e(BInteger
e$B$rJV$9$Y$-$@$C$?$H;W$$$^$9!#e(B
div e$B$H$+$bF1$8$G$9!#e(B

Float e$B$K$be(B BigDecimal
e$B$K$bMxMQ$G$-$k%3!<%I$r=q$/$3$H$O2DG=$@$C$?$O$:$Ge(B
e$B$9!#A4$F$,$=$&$G$"$kI,MW$O$"$j$^$;$s$,!“e(BInteger e$B$K$be(B Float
e$B$K$be(B
BigDecimal e$B$K$bDLMQ$9$k%3!<%IJR$@$C$F==J,$J2DG=@-$,$”$j$^$9!#e(B

e$B?6Iq$$$KE}0l@-$,$J$$$H!"$=$&$$$&$3$H$,$d$j$K$/$/$J$j$^$9!#e(B

e$B:#8=:_!"<B:]$K$O!"e(BComplex e$B$G$O!"e(BBigDecimal e$B$re(B
Complex.generic? e$B$G$O$Je(B
e$B$$$H$7$FCF$$$F$$$^$9$,!“e(BComplex e$B$,e(B Float
e$B$r<u$1$$$l$k$h$&$K!“e(B
BigDecimal
e$B$r<u$1$$$l$k2DG=@-$@$C$F$”$k$N$+$b$7$l$^$;$s!#<B:]!“e(BComplex
e$B$,<u$1$$$l$k$KEv$C$F$J$K$+>c32$,$”$k$+$o$+$j$^$;$s$,!“F1$8?tCM%/%i%9$Ke(B
e$B$*$1$k!”$3$NE}0l46$N$J$5$O!”>)Ne$G$-$k$b$N$G$b$J$$$h$&$K46$8$^$9!#e(B

e$B$"$/$^$GF10l%/%i%9Fb$GJD$8$?$H$3$m$G!"$J$K;v$+@.$;$P$h$$$H9M$($l$P!"$“e(B
e$B$^$j5$$K$J$i$J$$$N$+$b$7$l$^$;$s!#:#8=:_!”$=$&$$$&;V8~$G$"$k$3$H$O4V0ce(B
e$B$$$J$$$H;W$$$^$9!#$=$l$O!"$I$&$7$F$b$=$&$7$J$1$l$P$J$i$J$$M}M3$,$"$k$+e(B
e$B$i$J$N$+$I$&$+!"$A$g$C$H$h$/$o$+$i$J$$$s$G$9$,!#e(B

e$B$7$+$7$J$,$i!“0LCVIU$1$,$I$&$G$”$l!“e(BBigMath e$B$N4X?t$,!”%b%8%e!<%k4X?t$Ge(B
e$B$"$C$F!"$$$1$J$$M}M3$,$o$+$j$^$;$s!#$"$H!"e(BFloat#to_d e$B$,!“e(B
BigDecimal(self.to_s) e$B$J$3$H$H$+!#e(B
e$B$3$l$OFC$KM}M3$O$”$j$^$;$s!#e(B

e$B$G$O!"$=$&$J$C$F$$$F$b!"$h$$$H!#e(B

e$B$"$/$^$G<+?.$,$J$/!"%5%s%W%kE*$J$b$N$G$"$k$H$$$&$J$i!"$$$C$=%$%s%9%H!<e(B
e$B%k$7$J$$$[$&$,$$$$$N$G$Oe(B?
e$B$$$^$5$i$H$$$&5$$b$7$J$$$G$b$"$j$^$;$s$,!V<+?.$,$J$/!W$H$$$&$3$H$G$Oe(B
e$B$"$j$^$;$s!#!!!V7W;;$G$-$k!W$H$$$&Nc$G$9!#e(B

e$B<+?.$O$J$$$3$H$O$J$$$,!"8=>uHG$r2!$7IU$1$kM&5$$O$J$$$N$G!"Nc$K2a$.$J$$e(B
e$B$H$$$&$3$H$G$9$+!#e(B

e$BKM$b$h$/<:GT$9$k$N$G$9$,!"<+J,$,;W$&$h$&$K$O$D$+$C$F$b$i$($J$$$b$N$J$Ne(B
e$B$G!"%$%s%9%H!<%k$5$l$J$$$h$&$K$7$?$[$&$,$$$$$+$b$7$l$^$;$s!#e(B

e$B>.NS$G$9!#e(B

----- Original Message -----
From: “Tadayoshi F.” [email protected]
Subject: [ruby-dev:33724] Re: bigdecimal

e$B$s!<!“$?$V$s!”$=$3$O4V0c$C$F$$$?$H;W$$$^$9!#3HD%$G$O$J$/!“$^$C$?$/$NFHe(B
e$B<+;EMM$G$9!#e(B
e$B$^$!!”;EMM$,L5$$;~E@$G$N?75,F3F~$J$N$G!“$=$l$rFH<+e(B
e$B$H8F$V$J$i$P$=$&$$$&$3$H$K$7$F$$-$^$7$g$&!#e(B
e$B40A48_49$r$b$D%5%V%;%C%H$rMQ0U$7!“$=$N>e$K3HD%%;%C%H$re(B
e$B:n@.$9$k$H$$$&$N$O$b$C$H$b$J9M$($H$O;W$$$^$9!#e(B
e$B$?$@!“DxEYLdBj$G!”$=$&$9$k$HF1$8$h$&$J%a%=%C%I$,0l5$$KA}e(B
e$B$($F$7$^$$!”$=$l$O$=$l$G:.Mp$r0z$-5/$3$9$G$7$g$&!#e(B
e$B;D$jJ
$+$iL>A0$rA*$V$N$b2?$@$+e(B…
Rationale$B$OJL$K$7$F!J$=$l$bDxEYLdBj$G$9$,!K!”$=$b$=$b!“e(B
Floate$B$G$O@:EY!J7e?t!K;XDj$r$G$-$J$$$7!”;XDj$7$?ESC<$Ke(B
e$B8_49$O$J$/$J$k$o$1$G!“%5%V%;%C%H$@$1$r;HMQ$9$k%3!<%I$Ke(B
e$B0UL#$r8+=P$;$^$;$s!J4pK$N!Ve(B+,-,*,e$BFC$Ke(B/e$B!W$9$i!K!#e(B
e$B2DJQ7e?t1i;;Cf$Ne(B trancate e$BEy!J$HF1MM$J%a%=%C%I!K$r;HMQe(B
e$B$9$k>l9g$G!“La$j$,e(B Integer e$B$r4|BT$9$k%1!<%9$C$F$I$&$J$se(B
e$B$G$7$g$&$M!)!!:G=*7k2L$@$1$J$i$H$b$+$/!”$=$N7k2L$r;HMQe(B
e$B$7$F7W;;B39T$9$k$?$a$K$O85$KLa$5$J$/$A$c$$$1$J$$$7!#e(B
e$B%3%s%T%e!<%?%”!<%-%F%/%A%c!<$K?6$j2s$5$l$F$$$k$@$1$Ne(B
e$B$h$&$J5$$,$7$^$9!#e(B

e$B%7%s%I%/$J$C$FMh$?e(B…

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

Tadayoshi F. e$B$5$s$O=q$-$^$7$?e(B:

e$B;d$O!"$3$l$3$=!VGd$j!JG$0U@:EY!K!W$H;W$C$F$k$s$G$9$1$I$M$’!#e(B
e$B#3!K$N%1!<%9$G$O#I#n#t#e#g#e#r$rJV$9$3$H$O$G$-$^$;$s!#e(B

Integer e$B$rJV$9$Y$-$@$C$?$H;W$$$^$9!#$=$&$$$&5!G=$,I,MW$J$i!"JL$K$9$k$+!"e(B
e$B>/$J$/$H$b0z?t$J$7$G8F$P$l$?$i!"e(BInteger e$B$rJV$9$Y$-$@$C$?$H;W$$$^$9!#e(B
div e$B$H$+$bF1$8$G$9!#e(B

e$B;d$b!“0z?t$J$7e(B(e$B$+e(Bnil)e$B$G8F$P$l$?$i>o$Ke(B Integer
e$B$rJV$9$Y$-$H;W$$$^$9!#e(B
Floate$B$be(BRationale$B$b$=$&$G$9$7!#0z?t$,$”$l$P!"e(BBigDecimal
e$B$G$b$$$$$+$H;W$$e(B
e$B$^$9!#e(B

e$B>.NS$G$9e(B…e$B!"$O$!e(B

From: “Shin-ichiro HARA” [email protected]
Subject: [ruby-dev:33729] Re: bigdecimal

e$B;d$b!“0z?t$J$7e(B(e$B$+e(Bnil)e$B$G8F$P$l$?$i>o$Ke(B Integer e$B$rJV$9$Y$-$H;W$$$^$9!#e(B
Floate$B$be(BRationale$B$b$=$&$G$9$7!#0z?t$,$”$l$P!“e(BBigDecimal e$B$G$b$$$$$+$H;W$$e(B
e$B$^$9!#e(B
e$B0z?t$NM-$j!?L5$7!”$^$?$O0z?t$N%?%$%W$GLa$j$N%*%V%8%'%/%He(B
e$B$,JQ2=$9$k%a%=%C%I$J$s$F%$%d$8$c$J$$$G$9$+!)e(B

e$B@.@%$G$9!#e(B

e$BLg304A$J$N$G$D$C$3$s$@$H$3$m$OHr$1$^$9$,!"e(B

e$B0z?t$NM-$j!?L5$7!"$^$?$O0z?t$N%?%$%W$GLa$j$N%*%V%8%’%/%He(B
e$B$,JQ2=$9$k%a%=%C%I$J$s$F%$%d$8$c$J$$$G$9$+!)e(B

e$B0z?t$K$h$C$FLa$jCM$N%*%V%8%’%/%H$,JQ2=$9$k$b$N$Oe(B String#[]
e$B$H$+$=$l$J$je(B
e$B$K$"$j$^$9$M!#e(B

e$B$=$l$O$5$F$*$-!">.NS$5$s$N<gD%$NMWE@$C$F!"e(B

Shigeo Kobayashi wrote:

e$B:G=*7k2L$@$1$J$i$H$b$+$/!"$=$N7k2L$r;HMQe(B
e$B$7$F7W;;B39T$9$k$?$a$K$O85$KLa$5$J$/$A$c$$$1$J$$$7!#e(B

e$B$3$3$8$c$J$$$G$9$+!)$G!"$=$&$$$C$?7|G0$KBP$7$F!"@:EY$rM%@h$9$k$+!"%7%s%We(B
e$B%k$J%/%i%9$KMn$H$9$+!"$I$A$i$,e(B Ruby
e$B$C$]$$$+$H$$$&!"6K$a$F<qL#$NLdBj$@$He(B
e$B46$8$^$7$?!#e(B

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

In message “Re: [ruby-dev:33732] Re: bigdecimal”
on Wed, 13 Feb 2008 12:44:14 +0900, “Shigeo Kobayashi”
[email protected] writes:

|e$B>.NS$G$9e(B…e$B!"$O$!e(B

|> e$B;d$b!“0z?t$J$7e(B(e$B$+e(Bnil)e$B$G8F$P$l$?$i>o$Ke(B Integer e$B$rJV$9$Y$-$H;W$$$^$9!#e(B
|> Floate$B$be(BRationale$B$b$=$&$G$9$7!#0z?t$,$”$l$P!“e(BBigDecimal e$B$G$b$$$$$+$H;W$$e(B
|> e$B$^$9!#e(B
|e$B0z?t$NM-$j!?L5$7!”$^$?$O0z?t$N%?%$%W$GLa$j$N%*%V%8%'%/%He(B
|e$B$,JQ2=$9$k%a%=%C%I$J$s$F%$%d$8$c$J$$$G$9$+!)e(B

e$B0z?t$N$“$j$J$7$GLa$j$N%%V%8%'%/%H$,JQ2=$9$k$3$H$Oe(BRubye$B$K$$$e(B
e$B$F$ODA$7$/$”$j$^$;$s$M!#$“$H%V%m%C%/$N$”$j$J$7$H$+!#$3$l$i$Oe(B
e$B308+$,0c$&$N$G0c$&8F$S=P$7%?%$%W$@$H8+$J$;$k$+$i$@$H;W$$$^$9!#e(B

e$B0z?t$N7?$GLa$jCM$N7?$,JQ$o$kJ}$O$5$[$IB?$$$o$1$G$O$“$j$^$;$se(B
e$B$M!#!V0z?t$HF1$8J}$,JV$k!W$H$$$&$h$&$JL@3N$J%k!<%k$,$”$k>l9ge(B
e$B0J30$K$O$*A&$a$G$-$J$$$H;W$$$^$9!#e(B

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

e$B$=$l$O$5$F$*$-!">.NS$5$s$N<gD%$NMWE@$C$F!"e(B

Shigeo Kobayashi wrote:

e$B:G=*7k2L$@$1$J$i$H$b$+$/!"$=$N7k2L$r;HMQe(B
e$B$7$F7W;;B39T$9$k$?$a$K$O85$KLa$5$J$/$A$c$$$1$J$$$7!#e(B

e$B$3$3$8$c$J$$$G$9$+!)$G!"$=$&$$$C$?7|G0$KBP$7$F!"@:EY$rM%@h$9$k$+!"%7%s%We(B
e$B%k$J%/%i%9$KMn$H$9$+!"$I$A$i$,e(B Ruby e$B$C$]$$$+$H$$$&!"6K$a$F<qL#$NLdBj$@$He(B
e$B46$8$^$7$?!#e(B

e$B$=$3$OO@E@$N$R$H$D$@$H;W$$$^$9$,!"<qL#$8$c$J$/$F!"e(Bruby
e$B$N;EMM$H$7$F<ue(B
e$B$1$$$l$F$b$i$&$Y$-$b$N$@$C$?$H;W$$$^$9$M!#e(BBigDecimal#to_i e$B$,e(B
nil e$B$rJVe(B
e$B$92DG=@-$b<qL#$J$N$+$J!#e(B

e$B$s!<!"$?$V$s!"$=$3$O4V0c$C$F$$$?$H;W$$$^$9!#3HD%$G$O$J$/!"$^$C$?$/$NFHe(B
e$B<+;EMM$G$9!#e(B
e$B$^$!!";EMM$,L5$$;~E@$G$N?75,F3F~$J$N$G!"$=$l$rFH<+e(B
e$B$H8F$V$J$i$P$=$&$$$&$3$H$K$7$F$*$-$^$7$g$&!#e(B

e$B8=:_$G$be(B ruby
e$B$K$O;EMM$,$J$$$H$$$($P$J$$$G$9$,!"$=$N$"$?$j$O!"$=$N;~E@e(B
e$B$G$b==J,DjCe$7$F$$$?9M$($@$C$?$H;W$$$^$9!#:#99$G$9$,!#e(B

e$B40A48_49$r$b$D%5%V%;%C%H$rMQ0U$7!"$=$N>e$K3HD%%;%C%H$re(B
e$B:n@.$9$k$H$$$&$N$O$b$C$H$b$J9M$($H$O;W$$$^$9!#e(B
e$B$?$@!“DxEYLdBj$G!”$=$&$9$k$HF1$8$h$&$J%a%=%C%I$,0l5$$KA}e(B
e$B$($F$7$^$$!"$=$l$O$=$l$G:.Mp$r0z$-5/$3$9$G$7$g$&!#e(B

e$B$G$b!“e(BBigDecimal#fix
e$B$J$I!”$5$i$K;w$?$h$&$J%a%=%C%I$rDI2C$7$F$$$k$H$3e(B
e$B$m$+$i$b%_%K%^%k;V8~$H$$$&$o$1$G$b$J$$$G$9$h$M!#e(B

e$B;D$jJ*$+$iL>A0$rA*$V$N$b2?$@$+e(B…
Rationale$B$OJL$K$7$F!J$=$l$bDxEYLdBj$G$9$,!K!"$=$b$=$b!“e(B
Floate$B$G$O@:EY!J7e?t!K;XDj$r$G$-$J$$$7!”;XDj$7$?ESC<$Ke(B
e$B8_49$O$J$/$J$k$o$1$G!"%5%V%;%C%H$@$1$r;HMQ$9$k%3!<%I$Ke(B
e$B0UL#$r8+=P$;$^$;$s!J4pK$N!Ve(B+,-,*,e$BFC$Ke(B/e$B!W$9$i!K!#e(B

e$BHs>o$KC1=c$JNc$G$9$,!"<!$N%a%=%C%I$O!"$[$$9$Y$F$N?tCM%/%i%9$KBP$7$F5!e(B
e$BG=$9$k$H;W$$$^$9!#e(B

def square(x) (x * x) end

e$B$3$l$O0UL#$,$J$$$3$H$J$s$G$7$g$&$+!#e(B

e$B2DJQ7e?t1i;;Cf$Ne(B trancate e$BEy!J$HF1MM$J%a%=%C%I!K$r;HMQe(B
e$B$9$k>l9g$G!“La$j$,e(B Integer e$B$r4|BT$9$k%1!<%9$C$F$I$&$J$se(B
e$B$G$7$g$&$M!)!!:G=*7k2L$@$1$J$i$H$b$+$/!”$=$N7k2L$r;HMQe(B
e$B$7$F7W;;B39T$9$k$?$a$K$O85$KLa$5$J$/$A$c$$$1$J$$$7!#e(B
e$B%3%s%T%e!<%?%"!<%-%F%/%A%c!<$K?6$j2s$5$l$F$$$k$@$1$Ne(B
e$B$h$&$J5$$,$7$^$9!#e(B

e$B$h$/$o$+$j$^$;$s$,!"@:EY$rBh0l$K5$$K$7$Fe(B div
e$B$N;EMM$rJQ$($A$c$&$N$b$+e(B
e$B$J$j?6$j2s$5$l$F$$$k$h$&$J5$$,$7$J$$$G$b$J$$$G$9$,!#e(B

e$B%7%s%I%/$J$C$FMh$?e(B…

2e$BG/6a$/A0$KKX$IF1$8$h$&$JFbMF$NLd$$3]$1$r$7$F$$$?$N$G$9$,!"$=$N;~$O$Je(B
e$B$K$bF@$i$l$^$;$s$G$7$?!#$3$l$@$1J9$/$N$K$I$l$@$16lO+$7$F$$$k$3$H$+!#e(B

e$B$7$+$7!"$@$$$?$$2r$j$^$7$?!#e(BBigDecimal
e$B$OFHFC$J$N$G!“B>$N?tCM%/%i%9$He(B
e$B$O0l=o$K9M$($A$c$$$1$J$$$H$$$&$3$H$G$9$M!#>.NS$5$s$b$=$&$$$&Iw$KI>2A$5e(B
e$B$l$k$N$OITK\0U$G$”$k!"$H$$$&$3$H$J$N$G$7$g$&!#e(B

BigDecimal
e$B$,4{B8$N?tCM%/%i%9$rB:=E$7$J$$$N$HF1$8$K!"B>$N?tCM%/%i%9$be(B
BigDecimal
e$B$K$D$$$F5$$K$7$J$/$F$$$$$h$&$G$9!#$?$H$($P!"e(BNumeric#sign e$B$re(B
e$BMQ0U$9$k>l9g!“e(BBigDecimal
e$B$H$O0c$&$b$N$K$J$k2DG=@-$,9b$$$G$9$,!”$=$&$$$Ce(B
e$B$?>l9g$G$b$^$C$?$/5$7s$M$9$kI,MW$O$J$5$=$&$G$9!#e(B

e$B$3$3$O$A$g$C$H<+J,$N=q$-J}$,0-$+$C$?$+$b$7$l$^$;$s!#%f!<%6$,%?%$%W$7$?e(B
e$B%j%F%i%k$HFbIt$G=hM}$5$l$F$$$k$b$N$rHf$Y$F!"!V@5$7$$!W$H$$$&$3$H$r%f!<%6$,e(B
e$B3NG’$9$k<jCJ$,$J$$$H$$$&E@$G!"!V0U?^$9$k$b$N$G$O$J$$$+$b!W$H=q$-$^$7$?!#e(B

e$B$J$k$[$I!#e(B

e$B$=$l0JMh!“4{B8%/%i%9$H$N?FOB@-$r=E;k$7$?e(BAPIe$B$K%j%G%6%$%s$7$?<+A0%i%$%V%i%j$re(B
e$B:n$j;O$a$F!”<BAuLL$G$b8zN($NNI$$$b$N$K$J$j$^$7$?$,!"NOITB-$G8x3+$K$O;j$C$Fe(B
e$B$$$^$;$s!#e(B

e$B:G6a:F$S?($j;O$a$?$N$G!"$H$j$"$($:%j%j!<%9$7$h$&$+$H;W$C$F$$$^$9!#e(B
e$B$=$N6G$K$O!"$,!<$C$H$?$/$5$s8f0U8+$rGRD0$G$-$l$P9,$$$G$9!#e(B

e$B$=$l$O3Z$7$_$G$9$M!#e(B

e$B:XF#$H?=$7$^$9!#e(B

On Mon, 11 Feb 2008 10:49:04 +0900
Tadayoshi F. [email protected] wrote:

e$B>e5-$G$"$l$P!“e(BBigDecimal(1.1.to_s)e$B$H$J$k$h$&$KFbIt$G$$$8$k<j$b$”$j$^$9$,!"e(B
e$B$?$H$($Pe(B BigDecimlal(3.14159265358979323846.to_s) e$B$N7k2L$O!"F~NO$N@:EY$,e(B
e$BMn$A$F$7$^$&$H$$$&E@$G%f!<%6$N0U?^$9$k$b$N$G$O$J$$$+$b$7$l$^$;$s!#e(B

e$B8=:_$Ne(B Float#to_d e$B$G$O!“$^$5$K$=$N$h$&$K$7$F$$$k$N$G$9$,!”$=$NIbF0>.?te(B
e$BE@?t$,@5$7$$$H$7$F!"0l1~@53N$KJQ49$9$k$3$H$O2DG=$G$9$M!#e(B

e$B$3$3$O$A$g$C$H<+J,$N=q$-J}$,0-$+$C$?$+$b$7$l$^$;$s!#%f!<%6$,%?%$%W$7$?e(B
e$B%j%F%i%k$HFbIt$G=hM}$5$l$F$$$k$b$N$rHf$Y$F!“!V@5$7$$!W$H$$$&$3$H$r%f!<%6$,e(B
e$B3NG’$9$k<jCJ$,$J$$$H$$$&E@$G!”!V0U?^$9$k$b$N$G$O$J$$$+$b!W$H=q$-$^$7$?!#e(B
e$B$D$^$je(B

BigDecimlal(3.14159265358979323846) !=
BigDecimlal(“3.14159265358979323846”)

e$B$,@.$jN)$D$H$$$&$3$H$,!“%f!<%6$K$H$C$F$I$3$^$GJ,$+$j$d$9$/;H$$$d$9$$$b$Ne(B
e$B$J$N$+!”$H$$$&Ld$$$G$9!#$3$3$G$O0U?^E*$Ke(BDBL_DIGe$B$r$O$_$G$k7e?t$N%j%F%i%k$re(B
e$BNc<($7$^$7$?$,!“$b$C$H>/$J$$7e?t$G>e5-ITEy9f$,@.$jN)$DNc$b$”$k$G$7$g$&!#e(B

e$B$"$j$,$H$&$4$6$$$^$9!#<B$O!"KM<+?H$bF1$8$h$&$J$3$H$r2a5n$K7+$jJV$78@$Ce(B
e$B$F$k$O$:$J$s$G$9$,!#e(Bruby e$B$N?tCM7O$OJQ$i$J$$$h$&$G!#e(B

e$B?tCM7O$H$$$&$+!“>.NS$5$s<+?H$,$H$F$b6/$$%]%j%7!<$r$*;}$A$N$h$&$Ge(B(e$BEZCE>l$Ne(B
#ifdefe$B%3%a%s%H%”%&%H$G2sHr$5$l$?!“e(BBigDecimal(“1”)+“2” =>
BigDecimal(“3”)
e$B$G$”$k$H$+e(B)e$B!"<+J,$N@[$$I=8=$G$OM-1W$J5DO@$r$9$k$N$,Fq$7$$$H46$8!"e(B5e$BG/A00JMhe(B
e$B<+J,$O$[$H$s$Ie(BBigDecimale$B$K?($C$F$$$^$;$s!#e(B

e$B$=$l0JMh!“4{B8%/%i%9$H$N?FOB@-$r=E;k$7$?e(BAPIe$B$K%j%G%6%$%s$7$?<+A0%i%$%V%i%j$re(B
e$B:n$j;O$a$F!”<BAuLL$G$b8zN($NNI$$$b$N$K$J$j$^$7$?$,!"NOITB-$G8x3+$K$O;j$C$Fe(B
e$B$$$^$;$s!#e(B

e$B:G6a:F$S?($j;O$a$?$N$G!“$H$j$”$($:%j%j!<%9$7$h$&$+$H;W$C$F$$$^$9!#e(B
e$B$=$N6G$K$O!"$,!<$C$H$?$/$5$s8f0U8+$rGRD0$G$-$l$P9,$$$G$9!#e(B

e$B$H$$$&!"<+J,$K%W%l%C%7%c!<$r$+$1$ke(BHacke$B!#e(B

e$B@.@%$G$9!#e(B

Tadayoshi F. wrote:

e$B$1$$$l$F$b$i$&$Y$-$b$N$@$C$?$H;W$$$^$9$M!#e(BBigDecimal#to_i e$B$,e(B nil e$B$rJVe(B
e$B$92DG=@-$b<qL#$J$N$+$J!#e(B

e$B!V<qL#!W$H$$$&$N$O8lJ@$,$"$C$?$+$b$7$l$^$;$s!#!VWs0UE*!W$NJ}$,$$$$$G$9$+e(B
e$B$M!#7k6I$($$$d$C$H7h$a$F$7$^$o$J$1$l$P$J$i$J$$$b$N$G!"$9$G$K7h$a$F$"$k$Ne(B
e$B$@$C$?$i$=$l$K=>$&$Y$-$G$7$g$&$7!“0[O@$,$”$k$J$iA4BN$K$D$$$F!VJQ99!W$H$$e(B
e$B$&$+$?$A$r$H$k$Y$-$G$"$m$&$H!#e(B