简单提供一个传入任意数字转为x,xxx,xxx的方法
function numberFormate(num) { // 数字格式化为x,xxx,xxx,xxx
num = parseFloat(num);
if (!Number.isNaN(num)) {
let str = Math.abs(num).toString().split('.');
const a = Math.ceil(str[0].length / 3);
str[0] = str[0].padStart(a * 3, '0');
const numArr = [];
for (let i = 0; i < a; i++) {
numArr.push(str[0].substring(i * 3, (i + 1) * 3));
}
numArr[0] = parseInt(numArr[0]);
const formateStr = numArr.join(',') + (str[1] ? '.' + str[1] : '');
return num < 0 ? "-" + formateStr : formateStr;
} else {
throw new TypeError("传入的参数必须是数字");
}
}
使用
numberFormate('-1123456789'); // 结果为-1,123,456,789
numberFormate(1123456789.2234); // 结果为1,123,456,789.2234
numberFormate('1123456789.2234.5567'); // 结果为1,123,456,789.2234
numberFormate('qw1123456789.2234.5567'); // 传入的值转成数字后变成NaN的会抛出类型错误