下面是讲解“JavaScript实现将数字转成千分位的方法小结【5种方式】”的完整攻略。
什么是千分位?
千分位是指将数字每隔三位加一个逗号表示的形式,比如:“1,234,567”。
为什么要使用千分位?
使用千分位可以使数字更加易读,尤其是对于大的数字更加方便观察。
实现方式
以下是五种JavaScript实现将数字转成千分位的方法:
方法一:toFixed()结合正则表达式
function numberToThousands(num){
// 将数字转为字符串并取其小数部分,如果没有则为空字符串
let cents = (num.toString().indexOf(".") > -1) ? num.toString().substr(num.toString().indexOf(".")) : "";
cents = cents.length == 2 ? cents + "0" : cents; // 若小数部分只有一位,则补上一个 0
num = Math.floor(num).toString(); // 去掉小数部分并转成字符串
if (num.length <= 3) {
return (num == '' ? '0' : num) + cents; // 处理空字符串和 '.00' 的情形
}
let intPart = num.replace(/(\d)(?=(?:\d{3})+$)/g, '$1,'); // 截取整数部分并在其后面添加逗号分隔符
return intPart + cents; // 连接整数部分和小数部分
}
测试用例:
console.log(numberToThousands(1234567.89)); // 输出: 1,234,567.89
console.log(numberToThousands(123456789)); // 输出: 123,456,789
console.log(numberToThousands(1234.5)); // 输出: 1,234.50
console.log(numberToThousands(0)); // 输出: 0
方法二:toLocaleString()方法
function numberToThousands(num){
return num.toLocaleString('en-US');
}
测试用例:
console.log(numberToThousands(1234567.89)); // 输出: 1,234,567.89
console.log(numberToThousands(123456789)); // 输出: 123,456,789
console.log(numberToThousands(1234.5)); // 输出: 1,234.5
console.log(numberToThousands(0)); // 输出: 0
方法三:for循环逐位添加逗号
function numberToThousands(num){
let integerNum = Math.floor(num).toString(); // 去掉小数部分并转成字符串
let result = ''; // 保存结果
for (let i = integerNum.length - 1, j = 1; i >= 0; i--, j++) {
result = integerNum.charAt(i) + result;
// 每隔三位添加逗号
if (j % 3 == 0 && i != 0) {
result = ',' + result;
}
}
return result;
}
测试用例:
console.log(numberToThousands(1234567.89)); // 输出: 1,234,567
console.log(numberToThousands(123456789)); // 输出: 123,456,789
console.log(numberToThousands(1234.5)); // 输出: 1,234
console.log(numberToThousands(0)); // 输出: 0
方法四:正则表达式
function numberToThousands(num){
return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
测试用例:
console.log(numberToThousands(1234567.89)); // 输出: 1,234,567.89
console.log(numberToThousands(123456789)); // 输出: 123,456,789
console.log(numberToThousands(1234.5)); // 输出: 1,234.5
console.log(numberToThousands(0)); // 输出: 0
方法五:逐位添加逗号
function numberToThousands(num){
let integerNum = Math.floor(num).toString(); // 去掉小数部分并转成字符串
let result = ''; // 保存结果
let len = integerNum.length;
let count = parseInt(len / 3); // 需要添加的逗号数量
let first = len % 3; // 首组数字的个数
let head = integerNum.substr(0, first); // 首组数字
let body = integerNum.substr(first); // 后面的数字
if (first) {
result += head + ",";
}
for (let i = 0; i < count; i++) {
result += body.substr(i * 3, 3) + ",";
}
result = result.substring(0, result.length - 1); // 去掉最后一个逗号
return result;
}
测试用例:
console.log(numberToThousands(1234567.89)); // 输出: 1,234,567
console.log(numberToThousands(123456789)); // 输出: 123,456,789
console.log(numberToThousands(1234.5)); // 输出: 1,234
console.log(numberToThousands(0)); // 输出: 0
以上为五种JavaScript实现将数字转成千分位的方法,可以根据实际需求来选择使用其中的一种方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript实现将数字转成千分位的方法小结【5种方式】 - Python技术站