js计算百分比保留两位小数

2,128 阅读1分钟

在使用Vue做开发时,计算入库率需要保留两位小数。 初步思路如下:定义一个过滤器,过滤保留后的两位小数,直接返回。

filters: {
  returnFloat(value) {
    value = parseFloat(Number(value).toFixed(2))
    // 计算值为整数则直接返回,否则是小数
    if (value === parseInt(value)){
      value = parseInt(value) * 100
      return value
    } else {
      console.log(value * 100)
      return value * 100
    }

  }
}

结果发生了精度丢失问题。

image.png

转换思路改下代码如下

filters: {
  returnFloat(value) {
    if (isNaN(value)){
      return 0
    } else {
      return Math.round(value * 10000) / 100 + '%'
    }
  }
},

image.png