这是在别的地方翻到的代码,但是它原来的有一点小问题,自己把它改进了一下,发出来标记一下,方便自己以后找。。

function numberFormat(num, decimal, dec, spe) { 
     decimal = (undefined === decimal) ? 0 : decimal; 
     decimal = parseInt(decimal); 
     dec  = (undefined === dec) ? '.' : dec; 
     spe  = (undefined === spe) ? ',' : spe; 
     num  = parseFloat(num) + ''; 
 
     var length, tmp, left, right; 
     length = num.length; 
     tmp  = num.split('.', 2); 
     left = tmp[0]; 
     left = _split(left, 3, spe); 
 
     right = (undefined === tmp[1]) ? '' : tmp[1]; 
     right = _pad(right, decimal); 
 
     if (0 == right.length) { 
         num = left; 
     } else { 
         num = left + dec + right; 
     } 
 
     return num; 
 
     function _split(str, len, spe) { 
         var l  = str.length; 
         var tmp = new Array(); 
    
         if (l > len) { 
             var b = l % len; 
 			if(b == 0)
 				b = len;
             var ts = str.substr(0, b); 
             tmp.push(ts); 
    
             while (b < l) { 
                 var ts = str.substr(b, len); 
                 tmp.push(ts); 
                 b += len; 
            } 
           str = tmp.join(spe); 
       } 
    
         return str; 
     } 
    
     function _pad(str, len) { 
         var l = str.length; 
    
         if (l < len) { 
             for (var i = 0; i < (len - l); i++) { 
                  str += '0'; 
            } 
        } else { 
               str = str.substr(0, len); 
        } 
    
         return str; 
     } 
 }

嗯嗯  numberFormat(num, decimal, dec, spe)  

第一个参数是要格式化的数字,

第二个参数是小数点后的位数(可选,默认0),

第三个参数是小数点的样式(可选,默认'.'),

第四个参数是分隔符的样式(可选,默认',')

 

嗯嗯  来个例子:numberFormat(1234,2);  输出为  1,234.00

嗯嗯 大概就是这个样子~

标签: js, numberFormat

添加新评论