Project

General

Profile

Bug #12414

Updated by nobu (Nobuyoshi Nakada) over 8 years ago

# What I did 
 ~~~ruby ~~~ 
 require 'bigdecimal' 

 r = 0.04...(Float::INFINITY) 
 n = BigDecimal.new('0.13E0') 
 r.include?(n.to_f) 
 r.include?(n) 
 ~~~ 

 # What I expected 
 ~~~ 
 true 
 true 
 ~~~ 

 # What happens instead 
 ~~~ 
 true 
 FloatDomainError: Infinity 
	 from (irb):19:in `to_r' 
	 from (irb):19:in `<=>' 
	 from (irb):19:in `include?' 
	 from (irb):19 
	 from /Users/msiegel/.rvm/rubies/ruby-2.2.3/bin/irb:15:in `<main>' 
 ~~~ 

 # Workaround 
 To workaround, I am calling `#to_f` on the `BigDecimal` before submitting it to the `Range#include?` 

 Note that this exception only occurs for certain BigDecimal values, not for all.

Back