数字千分位格式化问题

当系统中涉及到很多金额并且数额较大时需要对数字进行千分位格式化,提升数字的可阅读性
具体方式,可以封装一个方法

export function formatCurrency(num) {

if (num || num == 0) {

// 将num中的$,去掉,将num变成一个纯粹的数据格式字符串

num = num.toString().replace(/\$|\,/g, '')

// 如果num不是数字,则将num置0,并返回

if (num === '' || isNaN(num)) {

return 'Not a Number ! '

}

// 如果num是负数,则获取她的符号

var sign = ''

if (num.indexOf('-') !== -1) {

sign = '-'

num = num.substr(1)

}

// 如果存在小数点,则获取数字的小数部分

var cents = num.indexOf('.') > 0 ? num.substr(num.indexOf('.')) : ''

cents = cents.length > 1 ? cents : '' // 注意:这里如果是使用change方法不断的调用,小数是输入不了的

// 获取数字的整数数部分

num = num.indexOf('.') > 0 ? num.substring(0, (num.indexOf('.'))) : num

// 如果没有小数点,整数部分不能以0开头

if (cents === '') {

if (num.length > 1 && num.substr(0, 1) === '0') {

return 'Not a Number ! '

}

} else {

if (num.length > 1 && num.substr(0, 1) === '0') {

return 'Not a Number ! '

}

}

for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++) {

num = num.substring(0, num.length - (4 * i + 3)) + ',' + num.substring(num.length - (4 * i + 3))

}

// 将数据(符号、整数部分、小数部分)整体组合返回

return sign + num + cents

}

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值