美文网首页
2021-08-09 精度处理

2021-08-09 精度处理

作者: 落花夕拾 | 来源:发表于2021-08-09 17:56 被阅读0次
    
    /**
     * @param {*}, value
     * @param {number}, num, 数值精度
     * @param {boolean}, boolToNumber, 布尔值转成0/1
     */
    function formatnumber2(value, num, boolToNumber = false) {
      if (isEmpty(value)) {
        return ''
      }
    
      value = value.toString().trim()
    
      // 是否是布尔值
      if (/^(true|false)$/.test(value)) {
        if (boolToNumber) {
          if (value === 'true') {
            return 1
          } else {
            return 0
          }
        } else {
          return value
        }
      } else if (/(^-?[0-9]+(\.[0-9]*)?$)|(^-?\.[0-9]+$)|(^-?[0-9]+e[0-9]+$)/.test(value)) {
        // 匹配是否是有效数字,含科学计数法
        let a = value
        let b = 0
        b = a.indexOf('.')
        let val = Number(a)
        if (num === 0) { //当精度为0
          if (val >= 0) {
            if (b !== -1 && val >= 1) {
              a = a.substring(0, b) //取整
            } else { //四舍五入
              if (val > 0 && val < 1) {
                a = Math.round(val)
              }
            }
          } else { //负数
            if (b !== -1 && val <= -1) { //有小数点
              a = a.substring(0, b) //取整
            } else { //四舍五入
              if (val < 0 && val > -1) {
                a = Math.round(val)
                if (-a === 0) {
                  a = 0
                }
              }
            }
          }
        } else if (num) {//当精度不为0
          if (b !== -1) { //有小数点
            a = a.substring(0, b + num + 1)
          }
        }
    
        return a
      }
    
      return value
    }
    
    

    相关文章

      网友评论

          本文标题:2021-08-09 精度处理

          本文链接:https://www.haomeiwen.com/subject/ypazvltx.html