2013-11-28 57 views
4

JavaScript中的「Number」與「Integer」完全同義嗎?爲什麼JavaScript使用術語「數字」而不是「整數」?

什麼激起了我的好奇心:

--- PHP,Python和Java和其他人使用術語 「整數」 --- JavaScript有功能parseInt()而非parseNumber()

是否有任何細節利益?

+0

有隻有JavaScript中的浮點數,儘管整數可以表示爲浮點數。 –

+0

[Integers in JavaScript]的可能重複(http://stackoverflow.com/questions/4703725/integers-in-javascript) –

+0

@ Qantas94Heavy我明白了。我沒有太多數學。那麼,我應該刪除這篇文章嗎?另一個問題並不完全相同,但它得到了很好的回答。我搜索了一會兒,想知道有什麼區別,找不到任何東西。 – m59

回答

9

JavaScript中的「Number」與「Integer」完全同義嗎?

不是。JavaScript中的所有數字實際上都是64位浮點值。

parseInt()parseFloat()都返回相同的數據類型 - 唯一的區別是是否有任何小數部分被截斷。

64位中的52位用於精度,所以這給出了精確的帶符號的53位整數值。在此範圍之外,整數近似。

更詳細地說,從-9007199254740992到+9007199254740992的所有整數都表示爲(-2^53到+ 2^53)。 JavaScript無法完全表示的最小正整數是9007199254740993.嘗試將該數字粘貼到JavaScript控制檯中,並將其舍入到9007199254740992. 9007199254740994,9007199254740996,9007199254740998等等都完全表示,但不是其中的奇數整數。可以正確表示的整數變得越稀疏,越高(或更負),直到達到最大值Number.MAX_VALUE == 1.7976931348623157e+308

+0

不錯,有道理。我沒有用任何語言做過多的數學,所以我不會注意到。 – m59

相關問題