code: function(n, precision, units) {
      if (units === 'all') {
        units = METRIC_UNITS_FULL;
      } else if (!units) {
        units = METRIC_UNITS_SHORT;
      }
      return abbreviateNumber(n, precision, units);
    }
docs: *
  @method metric([precision] = 0, [units] = "nμm|k")
  @returns String
  @short Returns the number as a string in metric notation.
  @extra [precision] will round to the given precision (can be negative).
  [units] is a string that determines both the unit notation and the
  min/max unit allowed. The default is natural notation for common
  units (meters, grams, etc). "all" can be passed for [units] and is a
  shortcut to all standard SI units. The token `,` if present separates
  units, otherwise each character is a unit. The token `|` if present
  marks where fractional units end, otherwise no fractional units are
  used. Finally, the token `_` if present is a placeholder for no unit.
  
  @example
  
  (1000).metric()        -> "1k"
  (1000000).metric()     -> "1,000k"
  (1249).metric(2) + 'g' -> "1.25kg"
  (0.025).metric() + 'm' -> "25mm"
  (1000000).metric(0, 'nμm|kM') -> "1M"
  
  @param {number} [precision]
  @param {string} [units]
  
  *