一个JavaScript的数字不以科学计数法显示可以有多小?

How small can a JavaScript number be without displaying in scientific notation?

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

但我注意到偶尔会有一小部分数字以科学记数法显示。我的目标用户预计不会对科学记数法感到满意,并且在任何情况下,即使在处理下溢之后,这些数字也太小,应被视为零。

我怎么知道什么时候数字小到可以用科学记数法显示?

有没有我可以比较的最小数字?如果有,那是什么? 或者有更好的方法吗?

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

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

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

科学计数法的转换在Section 9.8.1 of ECMA-262中指定。

可以在 V8 engine here.

中找到此规范的实现