VUE-解决计算精度问题

2022-11-03  本文已影响0人  你这个锤子
安装依赖

npm install mathjs --save
全局挂载 main.js
import math from 'mathjs'
Vue.prototype.$math= mathjs

math.add( ) // 加
math.subtract( ) //减
math.divide( ) // 除
math.multiply( ) // 乘
math.sqrt(4) // 开方
math.bignumber() // 大数字 BigNumber进行计算要比使用Number进行计算慢得多,但可以任意精度执行。通过使用较高的精度,不太可能发生舍入错误。
math.format()  // 防止输出中出现舍入错误
实例
console.log(0.1 + 0.2) // 0.30000000000000004
// 使用math.js之后
const a= math.format(
  math.add(
    math.bignumber(0.1),math.bignumber(0.2)
  )
)
console.log(a) // 0.3
console.log(1 - 0.9) // 0.09999999999999998
// 用math.js之后
const b= math.format(
  math.subtract(
      math.bignumber(1), math.bignumber(0.9)
  )
)
consol(b) // 0.1
console.log(10 * 1.2 * 0.3) // 3.5999999999999996
// 用math.js之后
const c = math.format(
  math.multiply(
      math.bignumber(10), math.bignumber(1.2), math.bignumber(0.3)
  )
)
console.log(c) // 3.6
console.log(1.2 / 3) // 0.39999999999999997
// 用math.js之后
const d = math.format(
  math.divide(
      math.bignumber(1.2), math.bignumber(3)
  )
)
console.log(d) // 0.4

参考文档:
math.js 中文网 (mathjs.cn)

上一篇下一篇

猜你喜欢

热点阅读