js数学计算出现精度

之前在做商品计算折扣问题的时候,发现简单的数学乘除法会出现精度的问题,比如本来算出来应该是0.3的,但结果是0.2999999999999999。
那么接下来就来看看如何解决吧!

在vue里引入mathjs

npm install mathjs

然后封装一下mathjs的加减乘除法,将他们暴露出去就可以直接使用了,新建个Math.js的文件

const math = require('mathjs')
// 加法
function add(a, b) {
  return math.format(math.add(math.bignumber(a), math.bignumber(b)))
}

// 减法
function subtract(a, b) {
  return math.format(math.subtract(math.bignumber(a), math.bignumber(b)))
}

// 乘法
function multiply(a, b) {
  return math.format(math.multiply(math.bignumber(a), math.bignumber(b)))
}

// 除法
function divide(a, b) {
  return math.format(math.divide(math.bignumber(a), math.bignumber(b)))
}

module.exports = {
  add,
  subtract,
  multiply,
  divide
}

在需要的地方里引入该文件即可使用

你可能感兴趣的:(js数学计算出现精度)