From: Tetsuo Sakaguchi Date: 2014-04-23T16:42:31+09:00 Subject: [ruby-list:49808] Re: 小数点以下の表示で質問があります。 阪口です。 In message 2014-04-23T15:17+0900, Fumiaki Sakamoto wrote: > Rationalを使っても、0.1という形で10分の1を表現しても私の方法では結果は同じで > した。 a に Rational のインスタンスをいれても他に Float な値があると計算する際に Float に変換されて、2進の浮動小数点数計算になるので、十進の 0.1 は 2進化される際に近似値になってしまうと思います。その辺りが きしもとさんの「中途半端に」という指摘なんだと思います。 Rational で計算させたいのなら、b とか c に代入している 9.0 とか 0.0 も Rational か整数にしないと。。。 -- 阪口哲男@図書館情報メディア系.筑波大学 Tetsuo SAKAGUCHI. Faculty of Library, Information and Media Science University of Tsukuba, JAPAN. > もともと、0.999...という循環小数が > 0.999...= 9 x (1/10)**1 + 9 x (1/10)**2 + 9 x (1/10)**3 + ・・・+ 9 x > (1/10)**n > で表現され、n=∞の時に1に等しくなるというところを出典に試しに計算させたもので > す。 > > > On 2014/04/23 13:33, "KISHIMOTO, Makoto" wrote: > > >きしもとです > > > >> require 'rational' > >> a = 0.1 あるいは a = Rational(1, 10) > > > >この、中途半端に有理数を使って(使おうとして)いるのは何でしょうか? >