js计算小数不准确问题
今天遇到一个1:余额计算的问题,2:还有一个后端返回小数后四位问题
1:先解决余额计算问题:使用第三方库decimal.js,库根据自己项目去找支持依赖js/vue/react
// 创建 Decimal 实例并进行加法运算,建议使用plus加法,add会有多层嵌套,后期再看可能懵逼
const result = new Decimal(outPrepayRecordTotal.totalAmount)
.plus(new Decimal(outPrepayRecordTotal.refundTotalAmount))
.plus(new Decimal(outPrepayRecordTotal.cancelOutHosRefundAmount));
2:再解决前端优化小数点问题,先写一个hook,再在需要的地方格式化就行
import Decimal from 'decimal.js';
/**
* 初始化数字,两位小数以及更少小数位,返回补零之后的两位小数
*/
export const formateNum = (num: string | number) => {
if (!num || num == 0) {
return '0.00';
}
const toChangeNum = new Decimal(num).toString();
const smallNumLength = toChangeNum.split('.')[1]?.length ?? 0;
if (smallNumLength <= 2) {
return new Decimal(num).toFixed(2);
} else {
return new Decimal(num).toFixed(smallNumLength);
}
};


浙公网安备 33010602011771号