如何使用 Ajax 对数组中返回的金额求和?
还有其他方法可以计算后面金额为 .000 的总和吗?
示例:
for (i = 0; i < data.RecordCount; i++) {
totalBetAmount += parseFloat(data.Records[i].betAmount);
结果: 0.22130000001
最佳答案
这种不准确的原因是许多数字没有精确的浮点表示,而浮点正是 JavaScript 用于存储数字的方式。
一个实用的解决方案是将结果四舍五入到小数点后的一定位数,如下所示:
totalBetAmount = Math.round(totalBetAmount*100000000)/100000000;
这是显示原始数字和四舍五入数字的片段:
// Sample data
var data = {
Records: [
{ betAmount: 0.0001 },
{ betAmount: 0.0001 },
{ betAmount: 0.0001 },
],
RecordCount: 3
};
var totalBetAmount = 0;
for (i = 0; i < data.RecordCount; i++) {
totalBetAmount += parseFloat(data.Records[i].betAmount);
}
console.log('before:', totalBetAmount);
// round of inaccuracies, assuming decimals
totalBetAmount = Math.round(totalBetAmount*100000000)/100000000;
console.log('after:', totalBetAmount);
关于javascript - 如何对循环中的数组总量求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39178993/