vue中高精度小数问题(加减乘除方法封装)处理
很多项目都会涉及到计算,比如对账、财务等,对数据的计算要求比较高,先简单看个例子:两个小数相加正常来说不应该是0.3吗?为什么会有这么多位数?两数相减不应该是0.2吗?从以上例子来看计算的结果并不是很准确,所以可以用bigNumber来解决以上问题。bigNumberBigNumber.js是一个用于精度计算的js库。API地址:https://mikemcl.github.io/bignumbe
很多项目都会涉及到计算,比如对账、财务等,对数据的计算要求比较高,先简单看个例子:
-
两
个
小
数
相
加
\color{#ed1941}{两个小数相加}
两个小数相加
正常来说不应该是0.3吗?为什么会有这么多位数?
-
两
数
相
减
\color{#ed1941}{两数相减}
两数相减
不应该是0.2吗?
从以上例子来看计算的结果并不是很准确,所以可以用bigNumber
来解决以上问题。
bigNumber
BigNumber.js
是一个用于精度计算的js库。
API
地址:https://mikemcl.github.io/bignumber.js/
安装
npm install bignumber.js --S
使用
-
引入
import { BigNumber } from 'bignumber.js';
-
例子
-
加 \color{#009ad6}{加} 加
add(a, b) { a = BigNumber(a); b = BigNumber(b); return a.plus(b).toNumber(); //结果需要用toNumber转为普通数字 } //调用 add(0.1,0.2) //0.3
-
减 \color{#009ad6}{减} 减
minus(a, b) { a = BigNumber(a); b = BigNumber(b); return a.minus(b).toNumber(); }, minus(0.3,0.1); //0.2
-
乘 \color{#009ad6}{乘} 乘
mutiply(a, b) { a = BigNumber(a); b = BigNumber(b); return a.multipliedBy(b).toNumber(); } mutiply(3,0.6); //1.8
-
除 \color{#009ad6}{除} 除
devide(a, b) { a = BigNumber(a); b = BigNumber(b); return a.dividedBy(b).toNumber(); } devide(355,113) // 3.1415929203539825
-
多 个 数 求 和 \color{#145b7d}{多个数求和} 多个数求和
multiAdd(...params) { let data = BigNumber(0); for (let index = 0; index < params.length; index++) { const element = BigNumber(params[index]); data = data.plus(element); } return data.toNumber(); } multiAdd(1,2,3,4,5); //15
-
更多推荐
所有评论(0)