Project

General

Profile

Bug #10109

BigDecimal fail to compare to Float::INFINITY

Added by Crypto Barbu over 2 years ago. Updated 11 days ago.

Status:
Closed
Priority:
Normal
Assignee:
ruby -v:
ruby 2.2.0dev (2014-08-04 trunk 47060) [x86_64-linux]
[ruby-core:64190]

Description

head :002 > BigDecimal(0) < Float::INFINITY
FloatDomainError: Infinity
from (irb):2:in
to_r'
from (irb):2:in <'
from (irb):2
from /home/.../.rvm/src/rvm/rubies/ruby-head/bin/irb:11:in
'
head :003 > Float::INFINITY > BigDecimal(0)
(irb):3: warning: Numerical comparison operators will no more rescue exceptions of #coerce
(irb):3: warning: in the next release. Return nil in #coerce if the coercion is impossible.
ArgumentError: comparison of Float with BigDecimal failed
from (irb):3:in >'
from (irb):3
from /home/.../.rvm/src/rvm/rubies/ruby-head/bin/irb:11:in
'`

on version 2.1.0 :

2.1.0 :003 > BigDecimal("0") < Float::INFINITY
FloatDomainError: Infinity
from (irb):3:in
to_r'
from (irb):3:in <'
from (irb):3
from /home/.../.rvm/src/rvm/rubies/ruby-2.1.0/bin/irb:11:in
'
2.1.0 :004 > Float::INFINITY > BigDecimal("0")
ArgumentError: comparison of Float with BigDecimal failed
from (irb):4:in >'
from (irb):4
from /home/.../.rvm/src/rvm/rubies/ruby-2.1.0/bin/irb:11:in
'`

and on version 2.0.0 :

2.0.0-p353 :001 > BigDecimal(0) < Float::INFINITY
FloatDomainError: Infinity
from (irb):1:in
to_r'
from (irb):1:in <'
from (irb):1
from /home/.../.rvm/src/rvm/gems/ruby-2.0.0-p353/gems/railties-4.1.1/lib/rails/commands/console.rb:90:in
start'
from /home/.../.rvm/src/rvm/gems/ruby-2.0.0-p353/gems/railties-4.1.1/lib/rails/commands/console.rb:9:in start'
from /home/.../.rvm/src/rvm/gems/ruby-2.0.0-p353/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:69:in
console'
from /home/.../.rvm/src/rvm/gems/ruby-2.0.0-p353/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:40:in run_command!'
from /home/.../.rvm/src/rvm/gems/ruby-2.0.0-p353/gems/railties-4.1.1/lib/rails/commands.rb:17:in
'
from bin/rails:8:in require'
from bin/rails:8:in
'
2.0.0-p353 :002 > Float::INFINITY > BigDecimal(0)
=> true`

So there is a regression on Float.


Related issues

Duplicated by Ruby trunk - Bug #12414: FloatDomainError in infinite Range#include? for certain BigDecimals Closed

History

#1 [ruby-core:64195] Updated by Kenta Murata over 2 years ago

  • Target version set to current: 2.2.0
  • Category set to ext
  • Status changed from Open to Assigned
  • Assignee set to Kenta Murata

#3 Updated by Kenta Murata 11 days ago

  • Duplicated by Bug #12414: FloatDomainError in infinite Range#include? for certain BigDecimals added

#4 [ruby-core:78258] Updated by Kenta Murata 11 days ago

I found that this is fixed by r55123

#5 [ruby-core:78257] Updated by Kenta Murata 11 days ago

  • Status changed from Assigned to Closed

Also available in: Atom PDF