From: merch-redmine@... Date: 2019-06-24T17:35:02+00:00 Subject: [ruby-core:93336] [Ruby trunk Bug#14026] RUBY ERROR ON DIVISION with FDIV Issue #14026 has been updated by jeremyevans0 (Jeremy Evans). Status changed from Open to Feedback So it looks like there was a behavior change between Ruby 2.3 and 2.4, in that `Integer#fdiv` with a BigDecimal argument used to return BigDecimal instead of Float. However, I consider that change a bug fix, as the documentation for `fdiv` (even in Ruby 2.3) states `Returns float division`. You should get the same results in all cases with the latest releases of Ruby: ``` $ ruby23 -v -rbigdecimal -e 'p 196.fdiv(BigDecimal("13.0"))' ruby 2.3.8p459 (2018-10-18 revision 65136) [x86_64-openbsd] # $ ruby23 -v -rbigdecimal -e 'p 196.fdiv(BigDecimal("13.0")).to_f' ruby 2.3.8p459 (2018-10-18 revision 65136) [x86_64-openbsd] 15.076923076923077 $ ruby24 -v -rbigdecimal -e 'p 196.fdiv(BigDecimal("13.0"))' ruby 2.4.6p354 (2019-04-01 revision 67394) [x86_64-openbsd] 15.076923076923077 $ ruby25 -v -rbigdecimal -e 'p 196.fdiv(BigDecimal("13.0"))' ruby 2.5.5p157 (2019-03-15 revision 67260) [x86_64-openbsd] 15.076923076923077 $ ruby26 -v -rbigdecimal -e 'p 196.fdiv(BigDecimal("13.0"))' ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-openbsd] 15.076923076923077 $ ruby27 -v -rbigdecimal -e 'p 196.fdiv(BigDecimal("13.0"))' ruby 2.7.0preview1 (2019-05-31 trunk c55db6aa271df4a689dc8eb0039c929bf6ed43ff) [x86_64-openbsd] 15.076923076923077 ``` Can you check and see if you still are having the same problems with the most recent release of Ruby 2.4 or a later version of Ruby? ---------------------------------------- Bug #14026: RUBY ERROR ON DIVISION with FDIV https://bugs.ruby-lang.org/issues/14026#change-78819 * Author: frankpimenta (Frank Pimenta) * Status: Feedback * Priority: Normal * Assignee: * Target version: * ruby -v: >2.4 * Backport: 2.3: UNKNOWN, 2.4: UNKNOWN ---------------------------------------- ~$ ruby -v ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin16] ~$ rvm use 2.4.2 Using /Users/frankpimenta/.rvm/gems/ruby-2.4.2 ~$ ruby -rbigdecimal -e 'p 196.fdiv(BigDecimal("13.0"))' 2.203413367e-314 ~$ rvm use 2.4.1 Using /Users/frankpimenta/.rvm/gems/ruby-2.4.1 ~$ ruby -rbigdecimal -e 'p 196.fdiv(BigDecimal("13.0"))' 2.1358685693e-314 ~$ rvm use 2.3.5 Using /Users/frankpimenta/.rvm/gems/ruby-2.3.5 ~$ ruby -rbigdecimal -e 'p 196.fdiv(BigDecimal("13.0"))' # ~$ ruby -rbigdecimal -e 'p 196.fdiv(BigDecimal("13.0")).to_s("F")' "15.076923076923076923" ~$ rvm use 2.4.2 Using /Users/frankpimenta/.rvm/gems/ruby-2.4.2 ~$ ruby -rbigdecimal -e 'p 4.fdiv(BigDecimal("2.0"))' 2.236682878e-314 ~$ ruby -rbigdecimal -e 'p 4.fdiv(BigDecimal("2"))' 2.2136573e-314 ~$ man ruby ~$ ruby -e 'p Float::MIN' 2.2250738585072014e-308 ~$ ruby -rbigdecimal -e 'p 4.fdiv(BigDecimal("2")).class' Float ~$ ruby -e 'p Float::MAX' 1.7976931348623157e+308 ~$ ---Files-------------------------------- Screen Shot 2017-10-18 at 16.50.46.png (205 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: