JS实现金额千分位显示

前言

网上排的靠前的答案都写的挺复杂的复制起来都不好复制,于是就自己写了一个格式化金额函数,并且自带保留小数点后两位功能,不足后两位会自动补全。代码如下文所示。

实现逻辑

/**
* 金额千分位分割格式函数
* @param {Number|String} vlaue 需要转化的金额字符串
/
function formatAmount(value) {
	//传入值不是数字直接返回0
	if (!value) return '0.00'
    const values = value.toString().split('.')
    // 整数部分
    let integerNum = values[0]
    // 小数部分
    let decimalNum = values[1] ? values[1] : '00'
    decimalNum = decimalNum.length === 1 ? decimalNum + 0 : decimalNum
    //传入值小于1000不切割
    if (integerNum < 1000) {
      return `${integerNum}.${decimalNum}`
    }
    const list = []
    while (integerNum.length > 3) {
       // 倒序切割
      list.unshift(integerNum.slice(-3))
      integerNum = integerNum.slice(0, -3)
    }
    // 处理剩余长度
    list.unshift(integerNum)
    return `${list.join(',')}.${decimalNum}`
 }

编写完成后试验下执行结果:
执行结果
以上就是金额千分位格式化的逻辑,你也可以根据你的需求进一步扩展或是删减函数逻辑

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值