JS 对数值真正四舍五入及添加千分号符合

2020-05-29  本文已影响0人  木子方是个小太阳
   // js精度四舍五入
    roundFixed(num, fixed = 2) {
      if (num) {
        let pos = num.toString().indexOf('.');
        let decimalPlaces = num.toString().length - pos - 1;
        let _int = num * Math.pow(10, decimalPlaces);
        let divisor1 = Math.pow(10, decimalPlaces - fixed);
        let divisor2 = Math.pow(10, fixed);
        return Math.round(_int / divisor1) / divisor2;
      } else {
        return 0;
      }
    }

//数据格式话保留小数位并添加千分位
    numFormat(val, num = 2) {
      if (val && val != null) {
        val = String(val);
        var left = val.split('.')[0];
        var right = val.split('.')[1];
        right = right ? (right.length >= num ? '.' + right.substr(0, num) : '.' + right + '0') : '.00';
        var temp = left.split('').reverse().join('').match(/(\d{1,3})/g);
        return (Number(val) < 0 ? '-' : '') + temp.join(',').split('').reverse().join('') + right;
      } else if (val === 0) { // 注意===在这里的使用,如果传入的val为0,if中会将其判定为boolean类型,故而要另外做===判断
        return '0.00';
      } else {
        return '';
      }
    }
上一篇下一篇

猜你喜欢

热点阅读