我有一个奇怪的问题。我正在从网络音频API中获取数字,我得到的是一个常量列表:
3.1051260268969075e-28等等
我想围绕这个数字,但使用:
Math.round(magAmount);
始终返回0. magAmount是我存储数字的变量。另一个奇怪的是,如果我将数字乘以5,我得到一个低于原始值的值,在这种情况下为1.5525630134484537e-27。
有什么想法吗?
感谢。
答案 0 :(得分:5)
这个数字是5倍。
e-28小于e-27
答案 1 :(得分:4)
请注意,e-28
为*10^-28
,因此代码中没有任何异常。
由于这个数字很小,所以舍入它肯定会返回0
。
答案 2 :(得分:3)
Math.round()将舍入到下一个整数,因此舍入0.0000000000..00001(您正在做的)将舍入为0。
e-27也比e-28大,所以你的乘法是正确的
答案 3 :(得分:1)
圆到什么精度?如果你想要
3.1051260268969075e-28 - > 3.1e-28然后
Math.round(3.1051260268969075e-28 * 1.0e + 29)* 1.0e-29