BigDecimal#to_i

BigDecimal [email protected]$N7o$G>/$7;n$7$F$$$?$N$G$9$,!“e(Bto_i
e$B$C$F$+$J$jCY$/$J$ke(B
e$B$3$H$,$”$k$h$&$G$9$M!#e(B

BigDecimal#split e$B$,$"$i$o$9M-M}[email protected]?t$r5a$a$i$l$k$N$G!"e(Bto_i
e$B$,0UL#$9$k$N$O35$M0J2<$N$h$&[email protected]$H9M$($i$l$^$9!#e(B

class BigDecimal

def to_i2
if nan? || infinite?
raise FloatDomainError
end
s, f, b, e = split
(s * f.to_i * b ** (e - f.size)).to_i
end

end

1.9 e$B$G$J$$$H%@%[email protected]$H;W$$$^$9$7!“e(BBigDecimal
e$B$K$D$$$F>$7$/$J$$$N$G!”$J$Ke(B
e$B$+4V0c$C$F$$$k$+$b$7$l$^$;$s$,!"$3$N$[$&$,B.$$$_$?$$$G!"e(B
BigDecimal(‘12.345e678901’) e$B$N$h$&$JBg$-$J?t$G$O8z2LE*$K8+$($^$9!#e(B

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

In message “Re: [ruby-dev:38589] BigDecimal#to_i”
on Thu, 11 Jun 2009 22:39:04 +0900, Tadayoshi F.
[email protected] writes:

|BigDecimal [email protected]$N7o$G>/$7;n$7$F$$$?$N$G$9$,!“e(Bto_i e$B$C$F$+$J$jCY$/$J$ke(B
|e$B$3$H$,$”$k$h$&$G$9$M!#e(B

|1.9 e$B$G$J$$$H%@%[email protected]$H;W$$$^$9$7!“e(BBigDecimal e$B$K$D$$$F>$7$/$J$$$N$G!”$J$Ke(B
|e$B$+4V0c$C$F$$$k$+$b$7$l$^$;$s$,!"$3$N$[$&$,B.$$$_$?$$$G!"e(B
|BigDecimal(‘12.345e678901’) e$B$N$h$&$JBg$-$J?t$G$O8z2LE*$K8+$($^$9!#e(B

e$B%Q%C%A$r$/[email protected]$5$C$?$i<h$j9~$_$^$9!#$U$J$P$5$s$K$3$s$J$*4j$$$re(B
e$B$9$k$N$O6Z0c$$$+$b$H$O;W$$$^$9$,!"e(BBigDecimale$B$K$D$$$F>$7$/$Je(B
e$B$$e(B(e$B$I$3$m$+?tCM7W;;$K$9$i>$7$/$J$$e(B)e$B;d$h$j$OE,[email protected]$H;W$$$^$9e(B
e$B$+$i!#e(B

e$B%Q%C%A$r$/[email protected]$5$C$?$i<h$j9~$_$^$9!#$U$J$P$5$s$K$3$s$J$*4j$$$re(B
e$B$9$k$N$O6Z0c$$$+$b$H$O;W$$$^$9$,!"e(BBigDecimale$B$K$D$$$F>$7$/$Je(B
e$B$$e(B(e$B$I$3$m$+?tCM7W;;$K$9$i>$7$/$J$$e(B)e$B;d$h$j$OE,[email protected]$H;W$$$^$9e(B
e$B$+$i!#e(B

e$BA4A3>$7$/$J$$$N$G!"$^$D$b$H$5$s$K$OE($o$J$$$H;W$$$^$9$7!"e(BBigDecimal
e$BFbe(B
e$BMF$K$D$$$FCN$i$J$$$N$G9M$($r=R$Y!"EvLL$OMM;R$r8+$F$$$3$&$H;W$$$^$9!#e(B

ruby e$B$N%$%s%U%i$r$D$+$C$F$3$N$^$^<BAu$9$k$He(B **
e$B$N8B3&$,$"$k$H;W$$$^$9!#e(B
e$B$7$+$7!“9M$($?$i$3$l$Oe(B to_r
e$B$bF1$8$G$9$M!#$=$3$^$G<BMQ$9$k$3$H$,$”$k$Ne(B
e$B$+$I$&$+H=$i$J$$$N$G!“5$$K$9$kI,MW$,$”$k$N$+H=$i$J$$$G$9$,!#8=>u$,CY$$e(B
e$B$N$O%j%K%"[email protected]$H$9$k$H!“6KC<$KCY$/$J$k$3$H$,$”$C$F$b8B3&$Oe(B
e$B$J$$$N$+$b$7$l$^$;$s$M!#e(B

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

In message “Re: [ruby-dev:38592] Re: BigDecimal#to_i”
on Fri, 12 Jun 2009 00:40:54 +0900, Tadayoshi F.
[email protected] writes:

|> e$B%Q%C%A$r$/[email protected]$5$C$?$i<h$j9~$_$^$9!#$U$J$P$5$s$K$3$s$J$*4j$$$re(B
|> e$B$9$k$N$O6Z0c$$$+$b$H$O;W$$$^$9$,!“e(BBigDecimale$B$K$D$$$F>$7$/$Je(B
|> e$B$$e(B(e$B$I$3$m$+?tCM7W;;$K$9$i>$7$/$J$$e(B)e$B;d$h$j$OE,[email protected]$H;W$$$^$9e(B
|> e$B$+$i!#e(B
|
|e$BA4A3>$7$/$J$$$N$G!”$^$D$b$H$5$s$K$OE($o$J$$$H;W$$$^$9$7!"e(BBigDecimal e$BFbe(B
|e$BMF$K$D$$$FCN$i$J$$$N$G9M$($r=R$Y!"EvLL$OMM;R$r8+$F$$$3$&$H;W$$$^$9!#e(B

e$B$=$&$G$9$+!#$=$l$O;DG0$G$9!#0z$-B3$-%"%$%G%#%"$J$IDs6!$7$F$/e(B
[email protected]$5$$!#e(B