JS金额按千位逗号分隔并去除小数点后面多余的零

项目有需求,金额按千分位逗号隔开,如果小数点后面有多余的零要去除。
由于后台传的值是以“分”为单位的,所以先转换成“元”

// 去除小数点后面多余的零 - 金额按千位逗号分割
function formatMoney(num, type) {
  num = num ? parseFloat((num / 100).toFixed(2)) : 0

  if (/[^0-9\.]/.test(num)) {
    return '0'
  }
  if (num === null || num === '') {
    return '0'
  }
  num = num.toString().replace(/^(\d*)$/, '$1.')
  num = (num + '00').replace(/(\d*\.\d\d)\d*/, '$1')
  num = num.replace('.', ',')
  var re = /(\d)(\d{3},)/
  while (re.test(num)) {
    num = num.replace(re, '$1,$2')
  }
  num = num.replace(/,(\d\d)$/, '.$1')
  if (type === 0) { // 不带小数位(默认是有小数位)
    var a = num.split('.')
    if (a[1] === '00') {
      num = a[0]
    }
  }
  var regexp = /(?:\.0*|(\.\d+?)0+)$/
  num = num.replace(regexp, '$1')
  return num
}
// 金额按千位逗号分隔 - 去除小数点多余的0
console.log('金额按千位逗号分隔:', formatMoney('1234560022092'))
console.log('金额按千位逗号分隔:', formatMoney('123400000'))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值