function AddCalculation(...num) {
let decimalLength = 0; // 最多小数后几位
for(let i = 0; i < num.length; i++){
const tempNum = num[i]; // 每个参数
if(tempNum.toString().split('.').length > 1){ // 判断是否是小数,如果是小数的话,则获取到最长的小数位
const length = tempNum.toString().split('.')[1].length;
decimalLength = Math.max(decimalLength, length);
}
}
let result = 0;
for(let i = 0; i < num.length; i++){
const n = num[i] * Math.pow(10, decimalLength);
const tempResult = result * Math.pow(10, decimalLength);
result = (n + tempResult) / Math.pow(10, decimalLength);
}
return result;
}
AddCalculation(0.1, 0.2, ...);
js解决小数之间相加损失精度的问题
最新推荐文章于 2024-08-07 10:10:37 发布