e$B86$G$9!#e(B
rational 1.01 e$B$r%Q%C%1!<%8$7$^$7$?!#e(B
http://blade.nagaokaut.ac.jp/~sinara/ruby/rational/
e$B$KCV$$$F$"$j$^$9!#e(B
e$B:#;W$$=P$7$?$N$G$9$,!"e(Brational.c e$B$O!"85!9$ON)@P$5$s$Ne(B
frac ([ruby-list:11907],1999) e$B$r;29M$K$7$F:n$C$?$H$$$&$3$He(B
e$B$G$9!#$40U8+$rJ9$/$Y$-$G$7$?$M!#$9$$$^$;$s!dN)@P$5$s!#e(B
rational.c e$B$N<g$JJQ99E@!Je(B1.00 → 1.01e$B!K$O!'e(B
- Rational#to_f e$B$N%P%0e(B([ruby-dev:28530])e$B$rD>$7$?!#e(B
- Float#to_r e$B$r!Ve(BRATIONALe$B4X?t!W$H$7$F<BAu$7$?!#e(B
- Float#rationalize e$B$r!Ve(BRATIONALIZEe$B4X?t!W$H$7$F<BAu$7$?!#e(B
- Float.decode e$B$r<BAu$7$?!#e(B
- e$B@0?t$G$"$ke(B Rational e$B$Ne(B inspect e$B$KJ,Jle(B 1
e$B$r$D$1$?!#e(B
e$B$3$3$G8@$&!J$3$3$G$7$+8@$o$J$$!)!K!Ve(BRATIONALe$B4X?t!W$H$O!">.?te(B
e$B!J$NFbItI=8=!K$NM-M}?t2=$rI=$9!J35G0>e$N!K4X?t$G!"e(B
RATIONAL(1.1) e$B$O!"5!3#$K0MB8$7$^$9$,!"Nc$($Pe(B
2476979795053773/2251799813685248 e$B$K$J$j$^$9!#e(B
e$B$^$?!“!Ve(BRATIONALIZEe$B4X?t!W$H$O!”$=$NCM$re(B to_f
e$B$7$F85$N>.?t$Ke(B
e$BLa$kCf$G:G$bJ,;RJ,Jl$N>.$5$$M-M}?t$rJV$9!J35G0>e$N!K4X?t$G!"e(B
e$BNc$($Pe(B RATIONALIZE(1.1) e$B$Oe(B 11/10 e$B$G$9!#e(B
e$B%3%s%T%e!<%?$N=i?4<T$OAGKQ$Ke(B 1.1.to_r e$B$Oe(B 11/10
e$B$rJV$9$H;W$&e(B
e$B$+$i!“e(Bto_r e$B$Oe(B RATIONALIZE
e$B$G$”$k$Y$-$+$H!“$A$g$C$H;W$$$^$7$?e(B
e$B$,!”$=$b$=$=$b>.?t$r07$C$F$$$k;~E@$G5!3#8m:9$NCN<1$OI,MW$@$7!“e(B
RATIONALIZE e$B$N<BAu$NJ#;($5$d<B9TB.EY$NCY$5$NE@$GI8=`E*$J%a%=%Ce(B
e$B%IL>$rM?$($k$3$H$O95$($?$[$&$,$$$$$+$J!”$H9M$($^$7$?!#e(B
Float
e$B$N%a%=%C%IL>$H$7$Fe(B"rationalize"e$B$h$jC;$/$FAj1~$7$$$b$N$Oe(B
e$B$J$$$G$9$+$M!)e(B
e$B$H$3$m$G!“4v$D$+%O!<%I%k$,$”$C$F!“e(Brational 1.01 e$B!J$3$l$Oe(B
e$B%Q%C%1!<%8L>!K$O!”$^$@I8=`E:IU$K$G$-$J$$$H;W$$$^$9!#e(B
e$B:#G:$s$G$$$k$N$Oe(B Rational() e$B4X?t$G$9!#e(BRational(1.1)
e$B$O!"e(B
1.1.to_r e$B$HF1$8$G$$$$$H;W$$$^$9!#LdBj$Oe(B
Rational(“1.1”)e$B$G$9!#e(B
e$BA*Br;h$H$7$F!"e(B
(1) Rational(1.1) e$B$HF1$8!#$D$^$je(B RATIONAL(1.1) e$B$D$^$je(B
1.1.to_r
e$B$D$^$jJ,Jl$N$G$+$$$N!#e(B
(2) 11/10 e$B$H$9$k$D$^$je(B Rational(string) e$B$Oe(B string
e$B$rFH<+$N%Q!<e(B
e$B%:$r$7$Fe(B string e$B$N8+$?L$KAj1~$7$$M-M}?t$r$"$F$,$&!#e(B
(3) RATIONALIZE(1.1) e$B$D$^$je(B
11/10e$B!#!J$3$3$Ge(B(2)e$B$HCM$,Ey$7$$$Ne(B
e$B$O6vA3!#$G$bB?$/$N>l9g$=$&$J$k!#!Ke(B
e$B$,$"$j$($k$H;W$$$^$9!#e(B
(1)e$B$O!":#$^$G$N?tCMJQ494X?t$N;EMM$+$i9M$($k$H!“e(B
Rational(“str”) e$B$r8+$F!“e(Beval(“str”).to_r e$B$HI>2A$5$l$k$3$H$re(B
e$B4|BT$9$k2DG=@-$O9b$$$N$G!”<+A3$H$$$($^$9!#$?$@!”$;$C$+$/@53Ne(B
e$B$K>.?t$rM-M}?t$KJQ49$G$-$k5!2q$r<N$F$F$7$^$C$F$b$C$?$$$J$$!#e(B
e$B8=:$Oe(B(2)e$B$rA*Br$7$F$$$^$9!#$3$l$NLdBjE@$O!VFH<+$N%Q!<%:!W$G!“e(B
Rubye$B$N;}$DB?MM$J?tCM$N%j%F%i%kI=8=$KBP1~$9$k$N$O!”$+$J$j$N<je(B
e$B4V$@$H$$$&$3$H$G$9!#8=:$N<BAu$OIT40A4$G$9!#e(BRubye$B$N4{$K;}$C$Fe(B
e$B$$$k%3!<%I$r;H$&$K$7$F$b$+$J$j<j$rF~$l$kI,MW$,$"$C$FLLE]!#e(B
(3)e$B$O!“e(B1.1.to_r e$B$,e(B rational(1.1)
e$B$G$”$k$J$i!"L5$$$+$J!#e(B
e$B$I$&;W$$$^$9!)e(B
e$B$A$J$$Ke(B Rationalize() e$B4X?t$bMQ0U$7$F$$$F!“e(BRatinalize(“1.1”)
e$B$O!”$b$A$m$se(B 11/10 e$B$J$N$G$9$,!"$3$l$O!“e(BRATIONALIZE(1.1)
e$B$r7We(B
e$B;;$7$F$$$k$N$+!“FH<+$N%Q!<%:$r$7$F$=$&$J$C$F$$$k$N$+!”$I$C$Ae(B
e$B$J$s$@$H$$$&LdBj$b$”$j$^$9!#8=:$O8e<T$G$9!#e(B
e$B$d$d$3$7$$$J$"!#e(B