为什么JavaScript使用术语“数字”而不是“整数”?

时间:2013-11-28 01:50:47

标签: javascript numbers integer primitive

" Number"在JavaScript中完全与" Integer"?同义

是什么激起了我的好奇心:

--- PHP,Python,Java和其他人使用术语" Integer" --- JavaScript具有函数parseInt()而不是parseNumber()

是否有任何感兴趣的细节?

2 个答案:

答案 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/