前言
开发中经常遇到需要将数字转换为金额格式的场景,今天一起来封装一个函数实现一下这个需求。
一、需求
封装一个函数,实现将数字转换为金额展示格式。如:123,456.78
二、代码演示
代码如下(示例):
// s为传入的数字
// n为要保留几位小数
function formatMoney(s, n) {
n = n > 0 && n <= 20 ? n : 2
s = parseFloat((s + '').replace(/[^\d\.-]/g, '')).toFixed(n) + ''
var l = s.split('.')[0].split('').reverse()
var r = s.split('.')[1]
console.log(l, r)
let t = ''
for (let i = 0; i < l.length; i++) {
t += l[i] + ((i + 1) % 3 == 0 && i + 1 != l.length ? ',' : '')
}
return t.split('').reverse().join('') + '.' + r
}
const money = 123456.789
const res = formatMoney(money, 2)
console.log(res) // output: 123,456.79
总结
Learn and live.