From: rubikitch Date: 2005-11-08T13:50:00+09:00 Subject: [ruby-list:41509] Re: 数を減らしてくループ From: ゴトウダイスケ Subject: [ruby-list:41508] Re: 数を減らしてくループ Date: Tue, 8 Nov 2005 13:44:00 +0900 るびきちです。 > > 10.0.step(0,-2.0){|i| p i} > > windows 2000 sp4 + ruby 1.8.3 (2005-09-21) [i386-mswin32] > でちょっと試してみました。(増分をかえて) > すると、、、 > 0.8 となって欲しいところで 0.799999999999999 > 0.4 となって欲しいところで 0.399999999999999 > となりました。これってあまり嬉しくないなぁと思いますが > いかがでしょう。 浮動小数点数とはそういうものです。 丸め誤差が生じるためにそういう現象が起きます。 人間は10進数を扱いますが、コンピュータは2進数を扱います。 1/3が10進数では割切れないように、2進数で割切れない数も存在します。 表示するときは有効数字を指定しておくといいでしょう。 10.0.step(0,-2.0){|i| puts format("%.1f\n",i)} るびきち☆ http://www.rubyist.net/~rubikitch/