<分区>
我为我的某个项目编写了代码,我在其中添加了几个数字。在此过程中,我从数组中添加整数和 float 。直到数组的最后一个元素,总和具有适当的小数位数。但是在最后一个元素,总和突然给了我很多小数位。与前一个和相加的数字和和本身的小数点后不到 3 位,但最后的和却多于 3 位小数。这是代码。它在 JS 中。
function checkCashRegister(price, cash, cid) {
var change = 0, cidSum = 0;
change = cash - price;
console.log(change);
console.log(cid.length);
for ( var i = 0; i < cid.length; i++ ){
console.log("number " + cid[i][1]);
cidSum += cid[i][1];
console.log("sum " + cidSum);
}
console.log(cidSum);
// Here is your change, ma'am.
return change;
}
// Example cash-in-drawer array:
// [["PENNY", 1.01],
// ["NICKEL", 2.05],
// ["DIME", 3.10],
// ["QUARTER", 4.25],
// ["ONE", 90.00],
// ["FIVE", 55.00],
// ["TEN", 20.00],
// ["TWENTY", 60.00],
// ["ONE HUNDRED", 100.00]]
checkCashRegister(19.50, 20.00, [["PENNY", 1.01], ["NICKEL", 2.05], ["DIME", 3.10], ["QUARTER", 4.25], ["ONE", 90.00], ["FIVE", 55.00], ["TEN", 20.00], ["TWENTY", 60.00], ["ONE HUNDRED", 100.00]]);
这是结果
0.5
9
number 1.01
sum 1.01
number 2.05
sum 3.0599999999999996
number 3.1
sum 6.16
number 4.25
sum 10.41
number 90
sum 100.41
number 55
sum 155.41
number 20
sum 175.41
number 60
sum 235.41
number 100
sum 335.40999999999997
335.40999999999997
如您所见,235.41 和 100 的总和为 335.4099999... 我知道我可以使用 toFixed 函数将其四舍五入。但是,我想了解为什么会这样。
如果我的英语很生涩或者我问了一个愚蠢的问题,请原谅我,我是来自第三世界国家的初学者,只想学习。