Method: Eqn::Function::RoundBase#value

Defined in:
lib/eqn/function.rb

#value(fn) ⇒ Object

Raises:



14
15
16
17
18
19
20
21
22
23
# File 'lib/eqn/function.rb', line 14

def value(fn)
  value = elements.shift.value
  raise ZeroDivisionError if value.is_a?(Float) && (value.abs == Float::INFINITY || value.nan?)
  if elements.empty?
    value.send(fn)
  else
    decimals = elements.shift.value
    (value * 10**decimals).send(fn).to_f / 10**decimals
  end
end