--Multipart_Tue_Sep_17_21:01:01_2002-1 Content-Type: text/plain; charset=ISO-2022-JP ºäÌî ÀµÌÀ¤Ç¤¹¡£ At Tue, 17 Sep 2002 15:07:11 +0900, <rubyist / mh1.117.ne.jp> wrote: > 9.2¤Î¿ôÃͤòÂåÆþ¤·¡¢¤µ¤»¤ë¤È9.199999999999999¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ > ¤³¤ì¤Ã¤Æ¡¢»ÅÊý¤¬Ìµ¤¤¤³¤È¤Ç¤·¤ç¤¦¤«¡© At Tue, 17 Sep 2002 15:55:45 +0900 <f-hiro / eweb.co.jp> wrote: > ¡¡ÍÑÅӤˤâ¤è¤ë¤È¤Ï»×¤¤¤Þ¤¹¤¬¡¢Â®ÅÙ¤ò̵»ë¤¹¤ì¤ÐRuby¤À¤ÈBignum¤¬»È¤¨¤ë¤Î¤Ç¡¢ > ÉâÆ°¾®¿ô¤ÎÂå¤ï¤ê¤Ë¥²¥¿¤ò¤Ï¤«¤»¤¿¿ôÃͤDZ黻¤¹¤ë¤È¤¤¤¦¤Î¤Ï¤É¤¦¤Ç¤·¤ç¤¦¤«¡© 9.2 ¤¯¤é¤¤¤ÎÀºÅ٤Ǥ¤¤¤¤Î¤Ê¤é¤Ð¡¢(¤«¤Ä®ÅÙ¤ò̵»ë¤Ç¤¤ì¤Ð) require "rational" Rational(92,10) ¤È°·¤¨¤Ð¤¤¤¤¤«¤È»×¤¤¤Þ¤¹¡£ require "mathn" ¤â¹Ô¤Ê¤¦¤È¡¢92/10 ¤ÇºÑ¤à¤Î¤Ç¡¢´Êñ¤Ë ±¤Æ¤¤¤¤¤«¤â¡¨Â Æìïá¤òɬÍפÊÀºÅÙ¤Ç Rational ¤ËÊÑ´¹¤¹¤ë¤¿¤á¤Î¼«ºî¥é¥¤¥Ö¥é¥ê --- ¶ñÂÎŪ¤Ë¤Ï Float class ¤Ë .to_r(precP (prec¤ÏÀºÅÙ) ¥á¥É¤ò ¤Ä¤±²Ã¤¨¤ë --- ¤òźÉÕ¤·¤Æ¤ß¤Þ¤·¤¿¡£ ºäÌî ÀµÌÀ --Multipart_Tue_Sep_17_21:01:01_2002-1 Content-Type: text/plain; charset=US-ASCII # fl2rat.rb class Float def to_r(precP ## Do "include Math" and "require 'rational'" first. case self when Integer, Rational, 0 return self.to_r end if self < 0 keta**(log10(-self).floor) else keta**(log10(self).floor) end keta2**(prec-1) (keta.to_r)*((self/keta)*keta2).round/keta2 end end --Multipart_Tue_Sep_17_21:01:01_2002-1 Content-Type: text/plain; charset=US-ASCII irb(main):001:0> require 'rational' true irb(main):002:0> include Math Object irb(main):003:0> require "fl2rat" true irb(main):004:0> 9.2.to_r Rational(46, 5) irb(main):005:0> 99.999.to_r Rational(99999, 1000) irb(main):006:0> 99.9999.to_r Rational(100, 1) irb(main):007:0> 99.9999.to_r(6) Rational(999999, 10000) irb(main):008:0> -99.9999.to_r(6) Rational(-999999, 10000) irb(main):009:0> 9.2e-10.to_r Rational(23, 25000000000) irb(main):011:0> 23.0/25000000000 9.2e-10 irb(main):012:0> --Multipart_Tue_Sep_17_21:01:01_2002-1--