From: calle.vander@... Date: 2017-09-21T21:13:44+00:00 Subject: [ruby-core:82924] [Ruby trunk Bug#13928] Calling Integer.fdiv with BigDecimal returns unexpected result Issue #13928 has been reported by calle.vander@gmail.com (Carl Vander). ---------------------------------------- Bug #13928: Calling Integer.fdiv with BigDecimal returns unexpected result https://bugs.ruby-lang.org/issues/13928 * Author: calle.vander@gmail.com (Carl Vander) * Status: Open * Priority: Normal * Assignee: * Target version: * ruby -v: 2.4.2p198 * Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN ---------------------------------------- After upgrading a Rails project from 2.3.1 to 2.4.2 I ran into a number of failing tests. Seems like to behaviour of fdiv and conjuction with bigdecimal is wrong. **Reproduce by running:** irb(main):001:0> require 'bigdecimal' => true irb(main):002:0> 1.fdiv(1-BigDecimal.new("0")) => 2.1296133346e-314 Ruby version: ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-darwin16] **I would expect the calculation to return 1, which is correctly done if converting the big decimal to a float first:** irb(main):006:0> 1.fdiv(1-BigDecimal.new("0").to_f) => 1.0 **Using ruby 2.3.1p112, it also looks OK:** irb(main):001:0> require 'bigdecimal' => true irb(main):002:0> 1.fdiv(1-BigDecimal.new("0")) => # irb(main):003:0> 1.fdiv(1-BigDecimal.new("0")).to_i => 1 -- https://bugs.ruby-lang.org/ Unsubscribe: