我有一个 String e.g: "4.874915326E7"
。将其转换为 javascript 数字格式的最佳方法是什么?(整数或浮点数)?如果我尝试 parseInt(),最后的E将被忽略。
如何将包含科学记数法的字符串转换为正确的 Javascript 数字格式
IT技术
javascript
string
numbers
format
2021-01-31 17:00:37
6个回答
编辑:
这个答案似乎引起了一些混乱。最初的问题是问如何将字符串形式的科学记数法转换为数字(以便它可以用于计算)。然而,找到这个答案的很多人似乎认为这是将一个由 javascript 表示为科学记数法的数字转换为更易于展示的格式。如果这实际上是您的目标(演示),那么您应该将数字转换为字符串。请注意,这意味着您将无法轻松地在计算中使用它。
原答案:
将其作为字符串传递给 Number 函数。
Number("4.874915326E7") // returns 48749153.26
Number("4E27") // returns 4e+27
将科学记数法中的数字转换为字符串:
这是另一个问题的最佳答案,但从那个问题来看,我个人喜欢使用.toLocaleString()
. 请注意,该特定解决方案不适用于负数。为了您的方便,这里有一个例子:
(4e+27).toLocaleString('fullwide', {useGrouping:false}) // returns "4000000000000000000000000000"
您还可以+
在字符串前使用符号来获取数字。
+"4.874915326E7" // == 48749153.26
我有这样的value,3.53048874968162e-09
并且使用Number.toFixed(20)
对我有用:
value = new Number('3.53048874968162e-09')
//[Number: 3.53048874968162e-9]
value.toFixed(20)
//'0.00000000353048874968'
使用 MathJs 库对我来说效果最好,尝试了很多这些答案,但在某些情况下没有一个能正常工作。这工作得很好。更多信息请访问https://mathjs.org/
解决方案,添加 MathJS 然后像这样调用它:
<script src="https://cdn.jsdelivr.net/npm/mathjs@8.0.1/lib/browser/math.js" crossorigin="anonymous"></script>
function toPlainString(num) {
return math.format(num, {notation: 'fixed'});
}
其它你可能感兴趣的问题