Mega Code Archive

 
Categories / Ruby / Number
 

Add approx method to Float number

class Float   def approx(other, relative_epsilon=Float::EPSILON, epsilon=Float::EPSILON)     difference = other - self     return true if difference.abs <= epsilon     relative_error = (difference / (self > other ? self : other)).abs     return relative_error <= relative_epsilon   end end 100.2.approx(100.1 + 0.1)               # => true 10e10.approx(10e10+1e-5)                # => true 100.0.approx(100+1e-5)                  # => false