2016-02-19 43 views
-2

我在做Math.pow(6.9, 3)並得到328.50900000000007而不是328.509。我怎樣才能得到328.509我怎樣才能做一個浮點基Math.pow?

我特指JavaScript。

+0

這是如何的數字會在內部使用Javascript表示,製造品的轉換,你可以使用'toFixed' - 所以'Math.pow(6.9, 3).toFixed(3)'。 – somethinghere

+0

這只是一個舍入誤差,328.50900000000007是最接近的浮點數328.509 有關更多信息,請參見[this other question](https://stackoverflow.com/questions/588004/is-floating-point-math-破壞?rq = 1)和[每個計算機科學家應該知道的有關浮點運算的知識](http://docs.sun.com/source/806-3568/ncg_goldberg.html) – Cimbali

+0

328.509不能存儲在浮點數。這不限於JS,同樣也不能完全以十進制存儲1/3。 –

回答

1

看吧:Number.prototype.toFixed()

所以,你需要Math.pow(6.9, 3).toFixed(3)

+1

也許你應該解釋一下,這返回的數字的字符串表示形式舍入爲3位小數,而不是另一個數字? – Cimbali

相關問題