有关JavaScript自动将金额处理并显示为元、万元、亿等

  1. 首先分析金额的单位可分为元、拾、佰、仟、万、亿、兆等
  2. 分别表示为1、10、100、1000、10000、100000000、1000000000000
  3. 去掉拾、佰、仟后元、万、亿、兆等可得规律兆为亿的10000倍、亿为万的10000倍、万为元的10000倍
  4. 则可根据此规律若得到金额数值小于10000的金额可直接使用元来表示、若是得到的金额数值大于等于10000的金额则可循环遍历将当前金额每次除以10000直至金额数值小于10000时,可根据循环次数得到当前金额的单位
function handleMoney(num) {
  // 首先先声明一个金额单位数组
  let AmountUnitlist = ["元", "万元", "亿", "兆", '京', '垓', '杼']
  // 将数字金额转为字符串
  let strnum = num.toString()
  // 声明一个变量用于接收金额单位
  let AmountUnit = ''
  // 循环遍历单位数组
  AmountUnitlist.find((item, index) => {
    let newNum = ''
    // 判断一下传进来的金额是否包含小数点
    if (strnum.indexOf('.') !== -1) {
      // 若有则将小数点前的字符截取出来
      newNum = strnum.substring(0, strnum.indexOf('.'))
    } else {
      // 没有则直接等于原金额
      newNum = strnum
    }
    // 判断一下经过小数点截取后的金额字符长度是否小于5
    if (newNum.length < 5) {
      // 若小于5则接收当前单位,并跳出迭代
      AmountUnit = item
      return true
    } else {
      // 若不小于5则将经过小数点截取处理过后的字符除以10000后作为下一轮迭代的初始金额重新判断(每一个单位之间相距4位数,故除以10000)
      strnum = (newNum * 1 / 10000).toString()
    }
  })
  let money = {num: 0, unit: ""}
  // 保留2位小数
  money.num = (strnum * 1).toFixed(2)
  // 接收单位
  money.unit = AmountUnit
  return money
}
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值