class Eqn::Function::RoundBase
Base node class for round functions.
Public Instance Methods
value(vars)
click to toggle source
# File lib/eqn/function.rb, line 16 def value(vars) value = elements.shift.value(vars) raise ZeroDivisionError if value.is_a?(Float) && (value.abs == Float::INFINITY || value.nan?) if term? value.send(self.class::ROUND_METHOD) else round_to_precision(vars, value) end end
Private Instance Methods
round_to_precision(vars, value)
click to toggle source
# File lib/eqn/function.rb, line 29 def round_to_precision(vars, value) decimals = elements.shift.value(vars) (value * 10**decimals).send(self.class::ROUND_METHOD).to_f / 10**decimals end