前端对金额千分位的处理

1、将金额转化为千分位

format(num, len) {
    if (len != undefined) {
      return `${(num * 1).toFixed(len)}`.replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,');
    } else {
      return `${(num * 1).toFixed(2)}`.replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,');
    }
  },

2、个位以上添加千分符 小数点后保留原有有效数字 

formatNoFixed(num) {
    const numToString = `${num}`;
    let strFront = '';
    let strEnd = '';
    let meetPoint = false;
    for (let i = 0; i < numToString.length; i++) {
      if (numToString[i] == '.') {
        meetPoint = true;
      }
      meetPoint ? (strEnd += numToString[i]) : (strFront += numToString[i]);
    }
    let result = '';
    strEnd
      ? (result = `${strFront.replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,')}.${strEnd.replace('.', '')}`)
      : (result = strFront.replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,'));
    return result;
  },

3、千分位保留五位有效数字

formatFive(num) {
    let numberFir = '';
    let numberTow = '';
    let number = '';
    if (`${num}`.indexOf('.') != -1 && `${num}`.split('.')[1].length >= 2) {
      numberFir = `${num}`.split('.')[0].replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,');
      numberTow = `${num}`.split('.')[1];
      number = `${numberFir}.${numberTow}`;
    } else if (`${num}`.indexOf('.') != -1 && `${num}`.split('.')[1].length < 2) {
      numberFir = `${num}`.split('.')[0].replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,');
      numberTow = `${`${num}`.split('.')[1]}0`;
      number = `${numberFir}.${numberTow}`;
    } else {
      numberFir = `${num}`.replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,');
      number = `${numberFir}.` + `00`;
    }
    return number;
  }

4、去掉千分位

 commafyback(num) {
    const newNum = num || '0';
    if (typeof newNum === 'string') {
      return parseFloat(newNum.split(',').join(''));
    } else {
      const str = newNum.toString();
      return parseFloat(str.split(',').join(''));
    }
  }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值