-1

我有一个奇怪的问题。我正在从网络音频 API 中获取数字,我得到的是一个常量列表:

3.1051260268969075e-28 等

我想四舍五入该数字,但使用:

Math.round(magAmount);

总是返回 0。magAmount 是我存储数字的变量。另一个奇怪的事情是,如果我将数字乘以 5,我得到的值低于原始值,在本例中为 1.5525630134484537e-27。

有任何想法吗?

谢谢。

4

4 回答 4

5

这个数字要大 5 倍。

e-28 小于 e-27

于 2013-06-18T16:02:16.273 回答
4

请注意,您e-28*10^-28代码中没有什么奇怪的。

由于这个数字很小,四舍五入肯定会返回一个0.

于 2013-06-18T16:02:49.890 回答
3

Math.round() 将四舍五入到下一个整数,因此四舍五入 0.0000000000..00001(你正在做的)将四舍五入为 0。

e-27 也比 e-28 大,所以你的乘法是正确的

于 2013-06-18T16:04:13.447 回答
1

圆到什么精度?如果你想

3.1051260268969075e-28 -> 3.1e-28 然后

数学.round(3.1051260268969075e-28 * 1.0e+29) * 1.0e-29

于 2013-06-18T16:21:59.347 回答