JS--普通数字格式与会计金额格式之间的转换 - 蓝蓝设计_UI设计公司

帝皇彩票官网

追求卓越一诺千金

蓝蓝设计,2011年成立,主创清华团队,专注软件和互联网ui设计开发。擅长企业信息化管理、监控、大数据软件UIUE咨询和设计开发服务。立足UI,好好学习,天天进步!


JS--普通数字格式与会计金额格式之间的转换

2019-10-24 释然 前端及开发文章及欣赏


普通数字转会计金额格式(保留两位小数)
我们可以用数字的toLocaleString()方法将普通数字转为会计金额格式,但是这种方式无法保留两位小数(四舍五入),如果是整数或者小数长度只有一位的时候无法自动补0

例如:


思路:
利用toLocaleString()以及toFixed()先对数字进行一个转换得到最多保留了2位小数的金额,然后判断数字是为整数还是带有小数,如果带有小数则进行切割,判断小数长度为1时自动补0

// 普通数字转会计金额格式 第一种
    function toThousandsFormates(num) {
        // 判断传进来的数字是否为非空数字
       if (!isNaN(parseFloat(num))) {
            var reg = /\./g
            var newNum = Number(Number(num).toFixed(2)).toLocaleString()
            // 判断转换后的数字是否带有小数
            if (reg.test(newNum)) {
                var numArr = newNum.split('.')
                // 判断小数点后数字长度为1,则自动补0
                numArr[1] = numArr[1].length === 1 ? numArr[1] + '0' : numArr[1]
                return numArr.join('.')
            } else {
                // 整数直接在后面补上0.00
                return newNum + '.00'
            }

        } else {
            return ''
        }
    }
    console.log(toThousandsFormates('0')); // 0.00
    console.log(toThousandsFormates('')); // ''
    console.log(toThousandsFormates(966)); // 966.00
    console.log(toThousandsFormates(966.3)); // 966.30
    console.log(toThousandsFormates(9669228.55)); // 9,669,228.55
    console.log(toThousandsFormates(96566.56954)); // 96,566.57

经过查阅资料后,发现toLocaleString()它里面自带属性可以检查到最少保留了几位小数,不够自动补0,这样我们上面的代码其实可以更加简单,如下:
// 普通数字转会计金额格式 第二种
function toThousandsFormates2(num) {
    // 判断传进来的数字是否为非空数字
    if (!isNaN(parseFloat(num))) {
        var newNum = Number(Number(num).toFixed(2)).toLocaleString('zh', { minimumFractionDigits: 2 })
        return newNum

    } else {
        return ''
    }
}

console.log(toThousandsFormates2('0')); // 0.00
console.log(toThousandsFormates2('')); // ''
console.log(toThousandsFormates2(966)); // 966.00
console.log(toThousandsFormates2(966.3)); // 966.30
console.log(toThousandsFormates2(9669228.55)); // 9,669,228.55
console.log(toThousandsFormates2(96566.56954)); // 96,566.57

// 结果一模一样

会计金额格式转普通数字(利用正则)
// 会计金额格式转为普通数字
    function rMoney(num) {
        return parseFloat(num.replace(/[^\d\\.-]/g, ''))
    }
    console.log(rMoney('96,566.57')); // 96566.57
    console.log(rMoney('966.30')); // 966.3
    console.log(rMoney('9,669,228.55')); // 9669228.55
蓝蓝设计www.bjhbys.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计  cs界面设计  ipad界面设计  包装设计  图标定制  用户体验 、交互设计、 网站建设 平面设计服务。
标签: 帝皇彩票官网JS--普通数字格式与会计金额格式之间的转换 « 产品设计核心三要素 | 交互手势的容错性和逻辑性»


蓝蓝 http://www.bjhbys.com

订阅Rss
大象彩票登入 聚发彩票投注 状元彩票官网 迪士尼彩乐园官方网址 福建快3开奖 帝皇彩票开奖 迪士尼彩乐园 迪士尼彩乐园 桔子彩票官网 迪士尼彩乐园娱乐