正如大家都知道的,因为这是被问到最多的话题之一,所以我遇到了舍入错误的问题(实际上不是错误,我很清楚)。我将不再解释我的观点,而是举一个例子,说明我有哪些可能的数字,以及我想获得哪些输入:
比方说
var a = 15 * 1e-9;
alert(a)输出
1.5000000000000002e-8我希望能够得到1.5e-8,但是我不能只乘以10e8,然后再除以10e8,因为我不知道它是e-8还是e-45或者其他任何东西。
所以基本上我想得到1.5000002部分,应用toFixed(3),把指数部分放回去。
我可以转换成字符串并进行解析,但这似乎不对.
知道吗?
(如果你觉得这是许多重复的问题之一,我提前道歉,但我找不到类似的问题,只有相关的问题)
盖尔
发布于 2011-01-28 17:09:17
您可以使用toPrecision方法:
var a = 15 * 1e-9;
a.toPrecision(2); // "1.5e-8"发布于 2011-01-28 17:13:04
如果你在做科学工作,并且需要记住一些重要的数字:Rounding to an arbitrary number of significant digits
发布于 2022-08-30 18:00:30
var a = 15 * 1e-9;
console.log(Number.parseFloat(a).toExponential(2));
//the above formula will display the result in the console as: "1.50e-8"https://stackoverflow.com/questions/4830952
复制相似问题