diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-11-04 07:31:47 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-11-04 07:31:47 +0000 |
commit | 6ed8c79ddb11ccfb580bb0a22b22cc1362250255 (patch) | |
tree | dac484800ae35b2cf5c62c8d743188bc1b280a12 /test | |
parent | 25728a1963a89940c26879cacb5f33741fd68455 (diff) | |
download | ruby-6ed8c79ddb11ccfb580bb0a22b22cc1362250255.tar.gz |
util.c: round to even
* util.c (ruby_dtoa): round to even, instead of rounding to
nearest. [ruby-core:77864] [Bug #12889]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56557 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r-- | test/ruby/test_sprintf.rb | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/test/ruby/test_sprintf.rb b/test/ruby/test_sprintf.rb index 440cd1d6ab..df9b19b064 100644 --- a/test/ruby/test_sprintf.rb +++ b/test/ruby/test_sprintf.rb @@ -283,7 +283,16 @@ class TestSprintf < Test::Unit::TestCase end def test_float_prec - assert_equal("5.03", sprintf("%.2f",5.025)) + assert_equal("5.00", sprintf("%.2f",5.005)) + assert_equal("5.02", sprintf("%.2f",5.015)) + assert_equal("5.02", sprintf("%.2f",5.025)) + assert_equal("5.04", sprintf("%.2f",5.035)) + bug12889 = '[ruby-core:77864] [Bug #12889]' + assert_equal("1234567892", sprintf("%.0f", 1234567891.99999)) + assert_equal("1234567892", sprintf("%.0f", 1234567892.49999)) + assert_equal("1234567892", sprintf("%.0f", 1234567892.50000)) + assert_equal("1234567894", sprintf("%.0f", 1234567893.50000)) + assert_equal("1234567892", sprintf("%.0f", 1234567892.00000), bug12889) end BSIZ = 120 |