# BigDecimal#to\_i

**URL:** <https://www.ruby-forum.com/t/bigdecimal-to-i/170035>\
**Category:** Development\
**Created:** [June 11, 2009, 3:39pm UTC](https://www.ruby-forum.com/t/bigdecimal-to-i/170035 "2009-06-11T15:39:35Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Tadayoshi\_F](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/2bfe46/32.png) [@Tadayoshi\_F](https://www.ruby-forum.com/u/Tadayoshi_F)\
**Post date:** [June 11, 2009, 3:39pm UTC](https://www.ruby-forum.com/t/bigdecimal-to-i/170035/1 "2009-06-11T15:39:35Z")

</div>

BigDecimal e$B$N=$@5$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}?t$+$i@0?t$r5a$a$i$l$k$N$G!"e(Bto\_i  
e$B$,0UL#$9$k$N$O35$M0J2\<$N$h$&$J$b$N$@$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%@%a$@$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

---

<div class="post-metadata">

**Author:** ![Tadayoshi\_F](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/2bfe46/32.png) [@Tadayoshi\_F](https://www.ruby-forum.com/u/Tadayoshi_F)\
**Post date:** [June 11, 2009, 5:00pm UTC](https://www.ruby-forum.com/t/bigdecimal-to-i/170035/2 "2009-06-11T17:00:05Z")

</div>

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.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|BigDecimal e$B$N=$@5$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%@%a$@$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$/$@$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,G$$@$H;W$$$^$9e(B  
e$B$+$i!#e(B

---

<div class="post-metadata">

**Author:** ![Tadayoshi\_F](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/2bfe46/32.png) [@Tadayoshi\_F](https://www.ruby-forum.com/u/Tadayoshi_F)\
**Post date:** [June 11, 2009, 5:41pm UTC](https://www.ruby-forum.com/t/bigdecimal-to-i/170035/3 "2009-06-11T17:41:18Z")

</div>

> e$B%Q%C%A$r$/$@$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,G$$@$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%"$K$d$C$F$k$+$i$@$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

---

<div class="post-metadata">

**Author:** ![Tadayoshi\_F](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/2bfe46/32.png) [@Tadayoshi\_F](https://www.ruby-forum.com/u/Tadayoshi_F)\
**Post date:** [June 11, 2009, 6:26pm UTC](https://www.ruby-forum.com/t/bigdecimal-to-i/170035/4 "2009-06-11T18:26:38Z")

</div>

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.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|\> e$B%Q%C%A$r$/$@$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,G$$@$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  
e$B$@$5$$!#e(B
