场景是 项目里面前端需要做的浮点数计算很多,但是前端直接计算精度是不准确的。所以引入bignumber.js来解决一下这个问题
npm install bignumber.js
项目是vue框架,引入:
main.ts里面:
import BigNumber from 'bignumber.js';
Vue.prototype.BigNumber = BigNumber.clone();
//bignumber 封装SUM方法 解决浮点数 计算偏差
/**
* arr 所需要合计的数组 对象数组 [{}] 若为非对象数组则直接调用 bignumber.sum()
* value 需要合计的数据 windows
* */
export function toSum(arr, value) {
let X = windows.globalVue.BigNumber
let arrSum = arr && arr.length > 0 ? arr.map(el => {
return (typeof (el[value]) == 'number') ? el[value] : 0
}) : []
return isNaN(X.sum(...arrSum).toNumber()) ? 0 : X.sum(...arrSum).toNumber()
}