2013-06-04 56 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個零)。

當然,你可以自己測試;)特別是看看這種行爲是否可靠跨瀏覽器。

就我個人而言,我認爲你不應該關心或依賴這種行爲。當你來顯示一個數字時,只需適當地格式化它。