summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-11-04 07:31:47 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-11-04 07:31:47 +0000
commit6ed8c79ddb11ccfb580bb0a22b22cc1362250255 (patch)
treedac484800ae35b2cf5c62c8d743188bc1b280a12 /test
parent25728a1963a89940c26879cacb5f33741fd68455 (diff)
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.rb11
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