From: kieran.mccusker@... Date: 2018-07-12T07:53:06+00:00 Subject: [ruby-core:87923] [Ruby trunk Bug#12548] Rounding modes inconsistency between round versus sprintf Issue #12548 has been updated by unclekiki (Kieran McCusker). Ok How about listing them in the format name ......... height (rounded to whole centimetre) sprintf would seem a great choice for that but fails due to it's rounding choices. By the way, I noticed this in the first place because I was using sprintf to format frequencies on charts using code like sprintf('%1.0f%%', frequency) so it was a reasonable use case for me. Could you give me a use case for sprintf where using round-even is a good enough choice for the decision to make it behave differently to round is justified? I know it wasn't really a conscious decision of course, but given that we have an implementation of sprintf in jruby that matches round and the sky does not appear to be falling down I find it difficult to understand the reasoning why sprintf rounding wasn't just brought in line with round. ---------------------------------------- Bug #12548: Rounding modes inconsistency between round versus sprintf https://bugs.ruby-lang.org/issues/12548#change-72932 * Author: unclekiki (Kieran McCusker) * Status: Open * Priority: Normal * Assignee: * Target version: * ruby -v: 2.4.0 * Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- Hi I've found this possible bug with `sprintf` in our production code, but it seems very odd that no one has reported it so I'm doubting myself. I've tested a few versions (CRuby 2.3.1 and 2.1.9) and it was present in both. To reproduce in irb: ```ruby sprintf('%1.0f', 12.5) ``` Expected result 13 actual 12 In fact if you look at the number sequence 0.5 -> 99.5 you find the even half will all round down and the odd half round up. 12.5.round produces the correct result (13) If you do the same in jruby 2.2.1 you get the expected result of 13. Many thanks Kieran ---Files-------------------------------- round_even.patch (4.43 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: