js 截取小数位

  • 1、保留N位小数,且是否在整数位后补零
      /**
       * 精确到小数后几位
       * 10000.00000 => 10000.0000
       * @param {*} digit number
       */
      export function filterByDigit(value, digit = 4, needZero = true) {
      const parse = (value, digit, needZero) => {
          const result = parseInt(value * Math.pow(10, digit)) / Math.pow(10, digit)
          if (needZero && digit > 0) {
          let _result = result + ''
          let dotIndex = _result.indexOf('.')
          // 不存在. 即是整数
          if (dotIndex < 0) {
              dotIndex = _result.length
              _result += '.'
          }
          return _result + '0'.repeat(dotIndex + digit - _result.length + 1)
          }
          return result
      }
      value = Number(value)
      if (typeof value === 'number' && !isNaN(value)) {
          return parse(value, digit, needZero)
      } else {
          return parse(0, digit, needZero)
      }
      }