global

def truncate *args

def truncate *args
  if args.length == 1
    if (precision = Integer args.shift) == 0
      super
    elsif precision > 0
      precision_factor = 10.0 ** precision
      (self * precision_factor).to_i / precision_factor
    else
      precision_factor = 10 ** precision.abs
      (self / precision_factor).to_i * precision_factor
    end
  else
    super
  end
end