Kaerius

number_format.js

Sep 27th, 2013
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function number_format(_number, _cfg){
  2.             function obj_merge(obj_first, obj_second){
  3.                 var obj_return = {};
  4.                 for (key in obj_first){
  5.                     if (typeof obj_second[key] !== 'undefined') obj_return[key] = obj_second[key];
  6.                     else obj_return[key] = obj_first[key];
  7.                 }
  8.                 return obj_return;
  9.             }
  10.             function thousands_sep(_num, _sep){
  11.                 if (_num.length <= 3) return _num;
  12.                 var _count = _num.length;
  13.                 var _num_parser = '';
  14.                 var _count_digits = 0;
  15.                 for (var _p = (_count - 1); _p >= 0; _p--){
  16.                     var _num_digit = _num.substr(_p, 1);
  17.                     if (_count_digits % 3 == 0 && _count_digits != 0 && !isNaN(parseFloat(_num_digit))) _num_parser = _sep + _num_parser;
  18.                     _num_parser = _num_digit + _num_parser;
  19.                     _count_digits++;
  20.                 }
  21.                 return _num_parser;
  22.             }
  23.             if (typeof _number !== 'number'){
  24.                 _number = parseFloat(_number);
  25.                 if (isNaN(_number)) return false;
  26.             }
  27.             var _cfg_default = {
  28.                 before: '',
  29.                 after: '',
  30.                 decimals: 2,
  31.                 dec_point: '.',
  32.                 thousands_sep: ','
  33.             };
  34.             if (_cfg && typeof _cfg === 'object'){
  35.                 _cfg = obj_merge(_cfg_default, _cfg);
  36.             }
  37.             else _cfg = _cfg_default;
  38.             _number = _number.toFixed(_cfg.decimals);
  39.             if(_number.indexOf('.') != -1){
  40.                 var _number_arr = _number.split('.');
  41.                 var _number = thousands_sep(_number_arr[0], _cfg.thousands_sep) + _cfg.dec_point + _number_arr[1];
  42.             }
  43.             else var _number = thousands_sep(_number, _cfg.thousands_sep);
  44.             return _cfg.before + _number + _cfg.after;
  45.         }
Advertisement
Add Comment
Please, Sign In to add comment