// 精度丢失异常数据汇总
10.3950 * 3935.00 = 期望40904.33, 异常结果40904.32
7.3950 * 3835.00 = 期望28359.83, 异常结果28359.82
11.777 * 4215 = 期望49640.06, 异常结果49640.05
12.445 * 4005 = 期望49842.23,异常结果49842.22
3721*17.0480 = 期望63435.61,异常结果63435.60
3621*5.0060 = 期望18126.73,异常结果18126.72
vue项目中直接装插件
npm install bignumber.js
import {
BigNumber } from 'bignumber.js';
// +
export function add(a, b) {
a = BigNumber(a);
b = BigNumber(b);
return a.plus(b).toNumber(); //结果需要用toNumber转为普通数字
}
// -
export function minus(a, b) {
a = BigNumber(a);
b = BigNumber(b);
return a.minus(b).toNumber();
}
// *
export function mut(a, b) {
a = BigNumber(a);
b = BigNumber(b);
return a.multipliedBy(b).toNumber();
}
// /
export function dev(a, b) {
a = BigNumber(a);
b = BigNumber(b);
return a.dividedBy(b).toNumber();
}
界面中使用:
import {
add,
minus,
mut,
dev
} from '@/utils/common.js' //公共方法
row.amountStr = (this.mut(Number(row.salePriceStr), Number(row.weightStr))).toFixed(2)
toFixed也有精度丢失问题,直接main.js中改写toFixed方法
Number.prototype.toFixed = function(d) {
var

文章讲述了在Vue项目中处理精度丢失问题的方法,通过引入bignumber.js库进行大数运算,并针对toFixed方法进行了自定义扩展,提供高精度的加减乘除和toFixed重写,确保数值计算的准确性。
最低0.47元/天 解锁文章
2563

被折叠的 条评论
为什么被折叠?



