【发布时间】:2018-02-24 03:33:27
【问题描述】:
我编写了一些代码,将数字四舍五入到给定的小数位数,但在出现下溢时会使用更多位以避免四舍五入为零,这对用户来说信息不足。
但我注意到偶尔会有一小部分数字以科学计数法显示。我的目标用户预计不会对科学记数法感到满意,并且在任何情况下,即使在处理了下溢之后,这样的数字也太小了,应该被视为零。
我怎么知道一个数字什么时候小到可以用科学计数法显示?
我可以比较一个最小的数字吗?如果有,它是什么? 还是有更好的办法?
(我知道我可以将数字转换为字符串并检查它是否有“e”,但我也是那种很想知道任何纯数学解决方案的类型。)
【问题讨论】:
-
为什么不直接获取数字的字符串形式并检查嵌入的“e”?
-
@Pointy:哦,出于好奇,我想知道如何在数学上做到这一点。我的意思是把它包括在问题中。让我编辑它...
-
好吧,诀窍是浮点数学相当复杂,而检查“e”真的很容易:)
-
结果可能取决于浏览器,最好的解决方案是检查
myNum.toString()是否有e。 -
对我电脑上的浏览器(当前 FF、Chrome、Edge)进行了快速测试,
1e-6似乎是在将值转换为 a 时未以科学计数法打印的最小数字细绳。所以Math.abs(value) >= 1e-6的所有东西都应该是安全的
标签: javascript floating-point numbers scientific-notation