请考虑以下代码:
0.1 + 0.2 == 0.3 -> false
Run Code Online (Sandbox Code Playgroud)
0.1 + 0.2 -> 0.30000000000000004
Run Code Online (Sandbox Code Playgroud)
为什么会出现这些不准确之处?
我为我的某个项目编写了代码,在其中添加了几个数字。在此过程中,我从数组中添加整数和浮点数。直到数组的最后一个元素为止,总和具有适当的小数位数。但在最后一个元素处,总和突然给了我很多小数位。前一个和的数字与总和本身的小数位数少于 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],
// …Run Code Online (Sandbox Code Playgroud)