如何转换包含科学记数法的字符串以更正Javascript数字格式

Olg*_*lga 41 javascript string format numbers

我有一个字符串,例如:"4.874915326E7".将其转换为javascript数字格式的最佳方法是什么?(int还是float)?如果我尝试parseInt(),则忽略末尾的E.

Jos*_*kle 61

将其作为字符串传递给Number函数.

Number("4.874915326E7") // returns 48749153.26
Number("4E27") // returns 4e+27
Run Code Online (Sandbox Code Playgroud)

  • 我不工作.`号( "1.7976931348623157e308")` (5认同)
  • @JosephMarikle但我希望我的数字标准符号不是科学的. (2认同)

Pra*_*ana 9

尝试这样的事情

演示

Number("4.874915326E7").toPrecision()
Run Code Online (Sandbox Code Playgroud)

  • 这里不需要.toPrecision()`,如果精度低于提供的字符串,则添加科学记数法. (4认同)

Yar*_*huk 7

您还可以使用+字符串前面的符号来获取数字.

+"4.874915326E7" // == 48749153.26
Run Code Online (Sandbox Code Playgroud)

  • 也适用于变量,甚至在字符串中:`x ="1e3"; ":"+(+ x)​​`给出":1000". (2认同)

小智 6

我有这样的价值,3.53048874968162e-09并且使用Number.toFixed(20)对我有用:

value = new Number('3.53048874968162e-09')
//[Number: 3.53048874968162e-9]
value.toFixed(20)
//'0.00000000353048874968'
Run Code Online (Sandbox Code Playgroud)