重複の可能性:
Javascript 数学エラー: 不正確な浮動小数点数
アニメーションを作成するための次のコードがあります(doItはアニメーションを行いますが、関連していません)。
function recur(max, i){
console.log("i: " + i);
if ( i <= 1){
setTimeout(function(){
// doIt(max,i);
recur(max, i + 0.1);
},100);
} else {
// OK
}
}
recur(16,0);
ただし、i の値は一貫していません。次のコードの出力は (Google Chrome 20) です。
i: 0
i: 0.1
i: 0.2
i: 0.30000000000000004
i: 0.4
i: 0.5
i: 0.6
i: 0.7
i: 0.7999999999999999
i: 0.8999999999999999
i: 0.9999999999999999
i: 1.0999999999999999
なぜこうなった?私は0.3がそれほど近い数ではないことを望んでいます。残念ながら、これはすべての反復で発生します。