From: vipulnsward@... Date: 2016-07-17T07:15:54+00:00 Subject: [ruby-core:76381] [Ruby trunk Bug#12580] Difference in sprintf float rounding Issue #12580 has been updated by Vipul Amler. Nobuyoshi Nakada wrote: > Resulting 5.6 by rounding 5.55 off to one decimal place looks more "natural", than 5.5. > New behavior considers binary representation error. > > What problem occurs concretely? hmm, even C does it this way - http://codepad.org/raENqNSj No, problem per-se, I was not sure of why this change was, or where it was "fixed". Will fix on Rails End to take this into account. ---------------------------------------- Bug #12580: Difference in sprintf float rounding https://bugs.ruby-lang.org/issues/12580#change-59629 * Author: Vipul Amler * Status: Feedback * Priority: Normal * Assignee: * ruby -v: ruby 2.4.0dev (2016-07-10 trunk 55628) [x86_64-darwin15] * Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- on 2.4-dev ` irb(main):006:0> sprintf "%0.01f", 5.55 => "5.6" irb(main):007:0> 5.55.class => Float ` on 2.4-preview `irb(main):001:0> sprintf "%0.01f", 5.55 => "5.5" irb(main):002:0> 5.55.class => Float irb(main):003:0>` Is the change intentional? If yes, what prompted this rounding change? This is currently causing issues on iso8601 serializer on Rails https://github.com/rails/rails/blob/04c512da1247a54474cfd8bef17a9e9019c34004/activesupport/lib/active_support/duration/iso8601_serializer.rb#L25 -- https://bugs.ruby-lang.org/ Unsubscribe: