aboutsummaryrefslogtreecommitdiffstats
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
commitdadd9bc24d7bdb80ee71364f1978d9344ce35dee (patch)
treedac484800ae35b2cf5c62c8d743188bc1b280a12 /test
parentc679eb1ca96ad9b29a39a57cbff8492f817cb698 (diff)
downloadruby-dadd9bc24d7bdb80ee71364f1978d9344ce35dee.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.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