为什么JavaScript使用术语“Number”而不是“Integer”?

4

在JavaScript中,“Number”是否完全等同于“Integer”?

引起我的好奇心的内容:

--- PHP、Python、Java和其他语言使用术语“Integer” --- JavaScript使用函数parseInt()而不是parseNumber()

有什么值得注意的细节吗?


JavaScript 中只有浮点数,尽管整数可以表示为浮点数。 - Qantas 94 Heavy
可能是JavaScript中的整数的重复问题。 - Qantas 94 Heavy
@Qantas94Heavy 我明白了。我不怎么做数学。所以,我该删除这个帖子吗?另一个问题并没有完全问到同样的事情,但答案已经很好了。我搜索了一会儿,想知道它们之间的区别,但找不到任何东西。 - m59
1
你的问题很好,考虑到这种情况,关闭为重复可能被认为是将两个问题及其答案链接在一起的一种方式。其他访问者可以从补充信息中受益。 - bfavaretto
2个回答

9
“Number”在JavaScript中是否完全等同于“整数”?
不是的。在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

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接