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)