解决 tofixed 遇到5 之后 四舍不入 不精准的问题 !

在网上找了 半天,都说了半天废话, 太费劲了,都是copy的, 太费劲了, 要不 就是他们的方法 不对,还是老样子

解决思路:当tofi 截取的时候 判断是否是5 , 如果是,手动改变 tofixed 位数 手动 添加一位  就可以 避开 tofixed 的 bug 他就可以自动准确计算出

  tofixed(val, len) { // val 需要截取的小数 len保留几位小数
      if (val.toString().split('.') && val.toString().split('.')[1] && val.toString().split('.')[1].length > len) { // 解决 tofix .5 不精确
        if (val.toString().split('.')[1].charAt(len) * 1 === 5) {
          const newNumber = Number(val.toString().split('.')[0] + '.' + val.toString().split('.')[1] + '1')
          val = newNumber.toFixed(len)
        } else {
          val = val.toFixed(len)
        }
      }
      return val
    },

举例: 保留 三位小数 tofixed(123.55555,3)  运算后结果就是 123.556

posted @ 2021-06-29 11:04  潇潇儿  阅读(195)  评论(0)    收藏  举报