2016-02-19 46 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

相关问题