js实现数字的格式化
这是在别的地方翻到的代码,但是它原来的有一点小问题,自己把它改进了一下,发出来标记一下,方便自己以后找。。
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
嗯嗯 大概就是这个样子~
