2013-06-04 55 views
0

我想知道JavaScript的浮点限制是什么。我有以下代码不会返回详细的浮点结果,如下所示:JavaScript浮点数

2e-2 is the same as 0.02 



var numero = 1E-12; 
document.write(numero); 

返回1e-12。

JavaScript可以处理的最大指数结果是什么?

回答

3

JavaScript是ECMAScript的实现,在Ecma-262和ISO/IEC 16262中有详细说明。Ecma-262指定使用IEEE 754 64位二进制浮点。

在该格式中,最小的正数是2 -1074(略高于4.94e-324),而最大的有限数目是2 -2 (下1.798e308略)。无限可以表示,所以从这个意义上说,JavaScript中没有数字的上限。

这种格式的数字在它们的有效位数(小数部分)中最多有53位。 (2 -1022以下的数字是次正常的,并且位数较少。)有限的位数意味着许多数字不能完全表示,包括您的示例中的.02。因此,算术运算的结果四舍五入到最接近的可表示值,计算链中的错误可能会取消或可能累积,甚至是灾难性的。

该格式还包含一些称为NaNs(不是数字)的特殊实体。 NaN可用于指示某个数字尚未初始化,用于特殊调试目的,或者表示没有数字适合的操作的结果(例如-1的平方根)。

0

最大值小于零..?

有详细的讨论here。基本上,0.00000x将显示在指数(小数点后5个零)。

当然,你可以自己测试;)特别是看看这种行为是否可靠跨浏览器。

就我个人而言,我认为你不应该关心或依赖这种行为。当你来显示一个数字时,只需适当地格式化它。