数字转金额格式化相关方法

1.拼接¥符号以及每隔三位以逗号分割

   将1000转成 1,000

fixMoney(num) {
    if (!num) {
      return '0.00';
    }
    if(isNaN(Number(num))){
      return num
    }
    let number = parseFloat(Number(num).toFixed(3)).toString().replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g,'$&,')
    
    return number
  },

 2.根据不同传参 显示不同的金额格式化

不传任何参数则格式化为默认样式 -- 示例1

只传某一参数 则另外两个样式不生效不展示 -- 示例2

传三个参数 按照传参样式进行格式化 -- 示例3

/**
 *  "COMMA" : 数字用逗号分隔
 *  "PRE_SYMBOL": 用指定符号前缀
 *  "precision": 精度
 */
numberFormat(source, type) {
  if (!source) {
    return 0
  }

  const format = type || {
    comma: ',',
    pre_symbol: '¥',
    suffix_symbol: '',
    precision: 2
  }

  let value = source

  if (format.precision) {
    value = new Decimal(value).toNumber()
      .toFixed(format.precision);
  }

  if (format.comma) {
    value = '' + value
    const split = value.split('\.')
    const intValue = split[0]
    const length = intValue.length
    let strTemp = split.length > 1 ? '.' + split[1] : ''
    let count = 0;

    for (let index = length - 1; index >= 0; index--) {
      count++
      if (index === 0) {
        for (let i = count; i > 0; i--) {
          strTemp = intValue[i - 1] + strTemp
        }
      } else if (count === 3) {
        count = 0
        strTemp = format.comma + intValue[index] + intValue[index + 1] + intValue[index + 2] + strTemp
      }
    }

    value = strTemp
  }

  if (format.pre_symbol) {
    value = format.pre_symbol + ' ' + value
  }
  if (format.suffix_symbol) {
    value = value + format.suffix_symbol
  }

  return value
}

示例1: 

//默认效果 什么参数都不传
item.amountShow = numberFormat(item.amount);

示例2:

item.goldenbeanQuantityShow = numberFormat(item.goldenbeanQuantity, { comma: ',' });

示例3:

item.goldenbeanQuantityShow = numberFormat(item.goldenbeanQuantity, { comma: '-', precision: 1, pre_symbol: '%%' });

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值