# 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