JavaScript中的“Number”与“Integer”完全同义吗?为什么JavaScript使用术语“数字”而不是“整数”?
什么激起了我的好奇心:
--- PHP,Python和Java和其他人使用术语 “整数” --- JavaScript有功能parseInt()
而非parseNumber()
是否有任何细节利益?
JavaScript中的“Number”与“Integer”完全同义吗?为什么JavaScript使用术语“数字”而不是“整数”?
什么激起了我的好奇心:
--- PHP,Python和Java和其他人使用术语 “整数” --- JavaScript有功能parseInt()
而非parseNumber()
是否有任何细节利益?
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
。
不错,有道理。我没有用任何语言做过多的数学,所以我不会注意到。 – m59
在JavaScript中有一个单一的数字类型:一个IEEE 754双精度浮点(所谓number
)
本文由D.克罗克福德有趣的是:
http://yuiblog.com/blog/2009/03/10/when-you-cant-count-on-your-numbers/
有只有JavaScript中的浮点数,尽管整数可以表示为浮点数。 –
[Integers in JavaScript]的可能重复(http://stackoverflow.com/questions/4703725/integers-in-javascript) –
@ Qantas94Heavy我明白了。我没有太多数学。那么,我应该删除这篇文章吗?另一个问题并不完全相同,但它得到了很好的回答。我搜索了一会儿,想知道有什么区别,找不到任何东西。 – m59