" Number"在JavaScript中完全与" Integer"?同义
是什么激起了我的好奇心: --- PHP,Python,Java和其他人使用术语" Integer"
--- JavaScript具有函数parseInt()
而不是parseNumber()
是否有任何感兴趣的细节?
答案 0 :(得分: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
之前,可以更精确地表示的整数变得更稀疏(或更负)。
答案 1 :(得分:3)
在JavaScript中有一种数字类型:IEEE 754双精度浮点(所谓的number
。)
D. Crockford的这篇文章很有意思:
http://yuiblog.com/blog/2009/03/10/when-you-cant-count-on-your-numbers/