def round(numeral, options={})
      round_up = options[:round_up]
      numeral, round_up = truncate(numeral, round_up)
      if numeral.exact?
        numeral
      else
        adjust(numeral, round_up)
      end
    end
def round(numeral, options={})
      round_up = options[:round_up]
      numeral, round_up = truncate(numeral, round_up)
      if numeral.exact?
        numeral
      else
        adjust(numeral, round_up)
      end
    end
Round a numeral. If the numeral has been truncated
 the :round_up option must be used to pass the information
 about the discarded digits:
 * nil if all discarded digits where 0 (the truncated value is exact)
 * :lo if there where non-zero discarded digits, but the first discarded digit
   is below half the base.
 * :tie if the first discarded was half the base and there where no more nonzero digits,
   i.e. the original value was a 'tie', exactly halfway between the truncated value
   and the next value with the same number of digits.
 * :hi if the original value was above the tie value.