实现货币格式化

129 阅读1分钟

正常数字 : 12345678
货币格式 : 12,345,678.00

可以看出转换的要求:
1.保留两位小数;
2.千,百万,十亿...每隔三位加个逗号

    FM (money) {
      // 首先处理小数位数,保留两位小数
      money = money.toFixed(2)
      // 取出小数部分
      const float = ('' + money).split('.')[1]
      // 取出整数部分
      const int = ('' + money).split('.')[0]
      
      // 处理整数部分,再合适位置添加逗号
      // 首先处理需要添加几个逗号的问题
      const newM = int.split('').reverse()
      const count = Math.floor(newM.length / 3)
      for (let i = 0; i < count; i++) {
        // 因为我们往数组里添加元素后,数组会变长,所以,第一次和后面添加逗号的时机不同
        if (i === 0) {
          newM.splice(3, 0, ',')
        } else {
          newM.splice((3 + i * 4), 0, ',')
        }
      }
      const newMoney = newM.reverse().join('') + '.' + float
      return newMoney
    },