Add approx method to Float number : Float Extension « Number « Ruby






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

 








Related examples in the same category

1.Add absolute_approx to float class
2.Compare two floats for a certain precision