在不以科学记数法显示的情况下,JavaScript 数字可以有多小?

hip*_*ail 4 javascript floating-point numbers scientific-notation

我编写了一些代码,将数字四舍五入到给定的小数位数,但在出现下溢时会使用更多位,以避免四舍五入到零,这对用户来说信息量不够。

但我注意到偶尔会有一小部分数字以科学计数法显示。我的目标用户预计不会适应科学记数法,无论如何,即使在处理下溢之后,这些数字也太小,应该被视为零。

我如何知道一个数字何时太小以至于可以用科学记数法显示?

有没有一个可以比较的最小数字?如果有的话是多少?或者,还有更好的方法?

(我知道我可以将数字转换为字符串并检查它是否有“e”,但我也是那种想知道任何纯数学解决方案的人。)

Inf*_*ion 7

数字以科学记数法显示有以下几个原因:

  • 如果数字中有效数字的长度大于21。
  • 如果非零数字之前的零数量大于 6。(例如 0.00000001)

ECMA-262 第 9.8.1 节指定了数字到科学记数法的转换。

可以在此处的 V8 引擎中找到此规范的实现。