如何将数字转化成千分位格式

  • 使用JavaScript 实现 paddingNum 方法
  • 分隔数字,每隔三位使用逗号分隔一次
  • return() 返回分隔后的字符串

@example

  • paddingNum(123) //return 123
  • paddingNum(12345) return 123,45
  • paddingNum(123456) return 123,456

方法一:用toLocaleString()方法

function paddingNum(number){
    return number.toLocaleString()
}
console.log(paddingNum(123456))
console.log(paddingNum(12345))
console.log(paddingNum(123))

tolocaleString()不仅可以根据本地时间把 Date 对象转换为字符串,还可以将数字转化为千分位格式

方法二:利用正则

function paddingNum(num) {
            let [integer, point] = num.toString().split(".")
            let res
            let reg = /(\d{3})(?=\d)/g
            let newStr = integer.split("").reverse().join("").replace(reg, (match, $1) => {
                return match + ","
            })
            newStr = newStr.split("").reverse().join("")
            point ? res = newStr + "." + point : res = newStr
            return res
        }
        console.log(paddingNum(123456))
        console.log(paddingNum(12345))
        console.log(paddingNum(123))

方法三 split切割

function paddingNum(num) {
    let flag = num > 0 ? true : false;
    const numArr = Math.abs(num).toString().split('.');
    let right = numArr[1] === undefined ? '' : '.' + numArr[1];
    let leftArr = numArr[0].split('');
    let res = [];
    for (let i = leftArr.length - 1, count = 0; i >= 0; i--, count++) {
        if (count % 3 === 0 && i != leftArr.length - 1) res.unshift(',');
        res.unshift(leftArr[i]);
    }
    return flag ? res.join('') + right : '-' + res.join('') + right;
}
        console.log(paddingNum(123456))
        console.log(paddingNum(12345))
        console.log(paddingNum(123))



©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容