可能重複:
Javascript Math Error: Inexact Floats的Javascript中加入0.1〜0.2的原因0.30000000000000004
我有以下的代碼,以使一個動畫(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不是那麼接近的數字。不幸的是,這發生在每一次迭代中。
的問題出現了幾分鐘前太(答案是相同的,複製粘貼):http://stackoverflow.com/questions/11284981/javascript-slight-division-error –
Downvoting沒有幫助,它沒有出現在類似的問題部分。每種語言都有很多例子,但每一個都被低估了。爲什麼? – Mustafa
不是我的downvote。將鼠標懸停在downvote圖標上時,您會看到「此問題**沒有顯示任何研究成果**;它不清楚或沒有用處(再次單擊以撤消)」。這個問題已被多次詢問,並且通過在搜索引擎/ Google中輸入關鍵字很容易找到。 [在Stack Overflow的搜索引擎中複製粘貼你的標題](http://stackoverflow.com/search?tab=relevance&q=javascript%20adding%200.1%20to%200.2%20causes%200.30000000000000004),並出現幾個重複項。 [與Google相同](http://www.google.com/search?q=Javascript+adding+0.1+to+0.2+causes+0.30000000000000004) –