Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > library _builtin > class Numeric > step
step(limit, step = 1) {|n| ... } -> self
step(limit, step = 1) -> Enumerable::Enumerator
self からはじめ step を足しながら limit を越える 前までブロックを繰り返します。step は負の数も指定できます。また、limit や step には Float なども 指定できます。
2.step(5){|n| p n} 2 3 4 5 1.1.step(1.5, 0.1) {|n| p n} => 1.1 1.2 1.3 1.4 1.5 10.step(6, -1){|n| p n} 10 9 8 7 6
注:浮動小数点数の 0.1 は 2進数では正確な表現ができない(2進数で 0.1は 0.00011001100....となる)ので、以下のようなループでは誤差が 生じて意図した回数ループしないことがある。step はこの誤差を考慮し て実装されている。
i = 1.1 while i <= 1.5 p i i += 0.1 end => 1.1 1.2 1.3 1.4 <- 1.5 が表示されない