数字逢三转逗号
方法一:
function changeTree(num) {
var num = (num || 0).toString();
var result = '';
while (num.length > 3) {
result = ',' + num.slice(-3) + result;
num = num.slice(0, num.length - 3);
}
if (num) { result = num + result; }
return result;
}
console.log(changeTree(100000000)) //100,000,000
方法二:正则
var aa="1000000";
var re=/(?=(?!\b)(\d{3})+$)/g
console.log(aa.replace(re,',')); //1,000,000
注意:以上两个方法不支持小数
完善:支持小数
function formatNum(str) {
var str = String(str)
var newStr = "";
var count = 0;
// 当数字是整数
if (str.indexOf(".") == -1) {
for (var i = str.length - 1; i >= 0; i--) {
if (count % 3 == 0 && count != 0) {
newStr = str.charAt(i) + "," + newStr;
} else {
newStr = str.charAt(i) + newStr;
}
count++;
}
str = newStr ; //自动补小数点后两位
return str;
}
// 当数字带有小数
else {
for (var i = str.indexOf(".") - 1; i >= 0; i--) {
if (count % 3 == 0 && count != 0) {
newStr = str.charAt(i) + "," + newStr;
} else {
newStr = str.charAt(i) + newStr; //逐个字符相接起来
}
count++;
}
str = newStr + (str + "00").substr((str + "00").indexOf("."), 3);
return str;
}
}
formatNum('13213.24'); //输出13,213.34