金额格式化 千位加逗号隔开并且保留小数点后两位

2020-11-20  本文已影响0人  PharkiLL
// 第一种
// 金额格式化 千位加逗号隔开
    toThousands(money) {
        let allNum = ''
        let tempNum = ''
        let mon = parseFloat((money + '').split('.')[0])
        let mon2 = parseFloat((money + '').split('.')[1])
        let num = (mon || 0).toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,');
        let num2 = ''
        if (mon2) {
            tempNum = parseFloat('0.' + mon2).toFixed(2)
            tempNum = tempNum.slice(1, tempNum.length)
        } else {
            tempNum = '.00'
        }
        allNum = num + tempNum
        return allNum
    },
// 第二种
    formatNum(n) {
            let num = n.toString()
            // 判断是否有小数
            let decimals = ''
            num.indexOf('.') > -1 ? decimals = num.split('.')[1] : decimals
            let len = num.length
            if (len <= 3) {
                return num
            } else {
                let temp = ''
                let remainder = len % 3
                decimals ? temp = '.' + decimals : temp
                if (remainder > 0) { // 不是3的整数倍
                    return num.slice(0, remainder) + ',' + num.slice(remainder, len).match(/\d{3}/g).join(',') + temp
                } else { // 是3的整数倍
                    return num.slice(0, len).match(/\d{3}/g).join(',') + temp
                }
            }
    }
上一篇下一篇

猜你喜欢

热点阅读