一个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.
中找到此规范的实现
我编写了一些代码,将数字四舍五入到给定的小数位数,但会在出现下溢时使用更多位,以避免四舍五入到零,这对用户来说信息不足。
但我注意到偶尔会有一小部分数字以科学记数法显示。我的目标用户预计不会对科学记数法感到满意,并且在任何情况下,即使在处理下溢之后,这些数字也太小,应被视为零。
我怎么知道什么时候数字小到可以用科学记数法显示?
有没有我可以比较的最小数字?如果有,那是什么? 或者有更好的方法吗?
(我知道我可以将数字转换为字符串并检查它是否有 "e",但我也是那种想知道任何纯数学解决方案的人。)
数字以科学计数法显示的原因有以下几个:
- 如果数字中有效数字的长度大于21。
- 如果非零数字前的零个数大于 6。(例如 0.00000001)
科学计数法的转换在Section 9.8.1 of ECMA-262中指定。
可以在 V8 engine here.
中找到此规范的实现