From: Yusuke ENDOH Date: 2011-09-14T00:19:41+09:00 Subject: [ruby-core:39524] Re: [Ruby 1.9 - Bug #4576] Range#step miss the last value, if end-exclusive and has float number Hello, 2011/9/13 Vit Ondruch : > Please first see the commit [1] and then tell me why the original test case should fail? Actually it fails on i386 and succeeds on x86_64 which is a bit suspicious. So I dig a bit deeper with my colleagues and we found that the test was just fine, but the implementation has issues on i386. This should be hopefully fixed with patch attached to this issue [2]. More detailed explanation can be found in Red Hat bugzilla [3]. Vit, did you run Test E in the original ticket in Red Hat buzilla? Indeed, Tests A--D and F behave as you expected with your patch applied: $ ./miniruby -e 'p (1.0...9.4).step(1.2).to_a' [1.0, 2.2, 3.4, 4.6, 5.8, 7.0, 8.2] $ ./miniruby -e 'p (1.0...6.4).step(1.8).to_a' [1.0, 2.8, 4.6] $ ./miniruby -e 'p (1.0...7.3).step(2.1).to_a' [1.0, 3.1, 5.2] $ ./miniruby -e 'p (1.0...7.6).step(2.2).to_a' [1.0, 3.2, 5.4] $ ./miniruby -e 'p (1.0...146.6).step(18.2).to_a' [1.0, 19.2, 37.4, 55.599999999999994, 73.8, 92.0, 110.19999999999999, 128.39999999999998] However, Test E still looks like "apparently wrong" on my i386: $ ./miniruby -e 'p (1.0...128.4).step(18.2).to_a' [1.0, 19.2, 37.4, 55.599999999999994, 73.8, 92.0, 110.19999999999999, 128.39999999999998] -- Yusuke Endoh