在下面的代碼段中,浮點錯誤是由相乘,並通過10在哪些情況下乘法和除法不能解決浮點錯誤?
除以沒有一個解決了乘法和除法z的值出來作爲0.30000000000000004
代替0.3
。
的方法「似乎」是不理想:
- 它對於每一個數字計算額外的開銷。
- 額外的計算會導致額外的CPU消耗。
var x = 0.1;
var y = 0.2;
var z = (x * 10 + y * 10)/10;
document.getElementById("demo").innerHTML = z;
<p id="demo"></p>
問題:
- 能否開發商盲目地用這個地方浮動點使用的所有情況?
- 有沒有這種情況下,這種乘法和除法方法不會解決浮動錯誤?
那如何解決任何問題?無論如何,你究竟想要解決什麼問題? – Amit
您將不得不接受浮點有四捨五入錯誤。你得到正確*輸出的事實並不意味着很多,你仍然有四捨五入的錯誤,但是它們太小而不顯示。你很幸運。 –
@RudyVelthuis是'.toFixed'與'parseFloat'最好的[解決](http://stackoverflow.com/questions/34390608/in-which-cases-multiply-and-divide-will-not-solve-floating - 點 - 錯誤?noredirect = 1#comment56522886_34390697)? – xameeramir