在JavaScript中将指数符号小数点限制为4个位置

6

如何在JavaScript中将这种类型的值的小数位限制为4个?e是指数,因为我正在使用10的幂值。toFixed()似乎无法使用。

1.0531436913408342e-7
-5.265718456704172e-7
8.425149530726674e7

1
你想从 0.00000010531436913408342 中获得什么?是 0 还是 "0.0000" 或者是 "1.053e-7" - Alex K.
4个回答

11

尝试:

   Math.round(val*10000)/10000

哈哈哈!太遗憾了,功劳都归给Mikko了,如果我能够检查你们两个的答案就好了... :) 感谢你的帮助。 - philip
1
更简洁的方法是这样的:Math.round(val*Math.pow(10,limit))/Math.pow(10,limit) - JustMaier

5

使用原力,卢克...看看numObj.toExponential(n)

MDN文档介绍了一种专门用于限制指数表示法中要显示的小数位数的JavaScript方法:decimal places to show in exponential notation:
*numObj*.toExponential([*fractionDigits*])

使用您的示例数字,您将得到以下结果:
1.0531436913408342e-7.toExponential(4) // 返回 1.0531e-7 -5.265718456704172e-7.toExponential(4) // 返回 -5.2657e-7 8.425149530726674e7.toExponential(4) // 返回 8.4251e+7

MDN的引用:

返回一个字符串,该字符串表示带有小数点前一位的Number对象的指数表示法,四舍五入到小数点后fractionDigits位

非常方便!


4

这个对我来说比被接受的答案效果更好。 - Farzad Yousefzadeh

0

你可以使用 Math.round();

使用 Math.round(x) 会将数字四舍五入为最接近的整数(使用经典的0.5规则)。

你可以传入自己的条件并设置小数位数。下面的链接中有1、2和3位小数的示例。

这里是链接


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接