【问题标题】:scientific notation with small numbers小数的科学记数法
【发布时间】:2021-02-04 13:41:07
【问题描述】:

我需要处理以科学记数法书写的数字。我知道目前 JS 只对大数和小数使用科学计数法。

例子:

1000000000000000000000 === 1e+21

0.0000001 === 1e-7

我希望每个数字都使用相同的符号。

例子:

10 应该是1e+1

我已经尝试过使用.toExponential的方法,但是数字被转换为string

我需要保留number 类型。

有什么建议吗?

【问题讨论】:

  • 数是数是数;无论值如何,内部表示都是一致的。
  • 不能拥有一个数字格式的值。 100 将与 1e2 具有相同的值,因为它们只有一个表示形式。数值没有附加显示信息。引擎只会将大数字显示为指数,但这完全是可视化的——这不是内存中保存的数值。它始终是 64 位 IEEE 754 浮点表示。如果需要特定格式的值,则需要使用字符串。

标签: javascript numbers scientific-notation


【解决方案1】:

您可以使用Number 将科学记数法字符串转换回数字。 .toExponential 将在规范中返回一个字符串,这就是你得到的。

console.log( Number('1e+4') );
console.log( Number('1e-4') );
console.log( typeof Number('1e-4') );

【讨论】:

    猜你喜欢
    • 2017-01-26
    • 2015-07-03
    • 2017-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-18
    • 1970-01-01
    相关资源
    最近更新 更多