code: function(place, thousands, decimal) {
        var i, str, split, integer, fraction, result = '';
        if(isUndefined(thousands)) {
          thousands = ',';
        }
        if(isUndefined(decimal)) {
          decimal = '.';
        }
        str      = (isNumber(place) ? round(this, place || 0).toFixed(math.max(place, 0)) : this.toString()).replace(/^-/, '');
        split    = str.split('.');
        integer  = split[0];
        fraction = split[1];
        for(i = integer.length; i > 0; i -= 3) {
          if(i < integer.length) {
            result = thousands + result;
          }
          result = integer.slice(math.max(0, i - 3), i) + result;
        }
        if(fraction) {
          result += decimal + repeatString((place || 0) - fraction.length, '0') + fraction;
        }
        return (this < 0 ? '-' : '') + result;
      }
docs: *
  @method format([place] = 0, [thousands] = ',', [decimal] = '.')
  @returns String
  @short Formats the number to a readable string.
  @extra If [place] is %undefined%, will automatically determine the place. [thousands] is the character used for the thousands separator. [decimal] is the character used for the decimal point.
  @example
  
  (56782).format()           -> '56,782'
  (56782).format(2)          -> '56,782.00'
  (4388.43).format(2, ' ')      -> '4 388.43'
  (4388.43).format(2, '.', ',') -> '4.388,43'
  
  *