From: WATABE Eiji Date: 2000-09-26T18:56:39+09:00 Subject: [ruby-list:25179] Re: round method わたべです。 >>>>> In [ruby-list : No.25173] >>>>> matz@zetabits.com (Yukihiro Matsumoto)さん φ(,_,)wrote: > ruby -e 'printf "%10.20f\n", (500.5)' > ruby -e 'printf "%10.20f\n", (500*1.001)' $ ruby -e 'printf "%10.20f\n", (500.5)' 500.50000000000000000000 $ ruby -e 'printf "%10.20f\n", (500*1.001)' の方は、 500.49999999999994315658 となりましたが、これは、プログラム言語全般に 言える事なんでしょーか? でも、(500 * 1.001)を四捨五入して501になって 欲しいので、自分なりにこんなメソッドを書いてみました。 def round2() a = format("%f", self).to_f return a.round end # 一応、期待している値は得られるんですが、こんなアプローチでいいんだ # ろうか。 -- わたべ えいじ