【问题标题】:Why does JavaScript use the term "Number" as opposed to "Integer"?为什么 JavaScript 使用术语“数字”而不是“整数”?
【发布时间】:2013-12-13 21:58:45
【问题描述】:

JavaScript 中的“数字”是否与“整数”完全同义?

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

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

有什么感兴趣的细节吗?

【问题讨论】:

  • JavaScript 中只有浮点数,但整数可以表示为浮点数。
  • Integers in JavaScript的可能重复
  • @Qantas94Heavy 我明白了。我不怎么做数学。那么,我应该删除这个帖子吗?另一个问题不是问同样的问题,但回答得很好。我用谷歌搜索了一段时间,想知道有什么区别,但找不到任何东西。
  • 您的问题很好,在这种情况下作为副本关闭可以被认为是链接两个问题及其答案的一种方式。其他访问者将从补充信息中受益。

标签: javascript numbers integer primitive


【解决方案1】:

JavaScript 中的“数字”是否与“整数”完全同义?

没有。 JavaScript 中的所有数字实际上都是 64 位浮点值。

parseInt()parseFloat() 都返回相同的数据类型 - 唯一的区别是是否截断任何小数部分。

64 位中的 52 位用于精度,因此这为您提供了精确的有符号 53 位整数值。超出此范围的整数是近似值。

更详细一点,从 -9007199254740992 到 +9007199254740992 的所有整数都精确表示(-2^53 到 +2^53)。 JavaScript 无法准确表示的最小正整数是 9007199254740993。尝试将该数字粘贴到 JavaScript 控制台中,它将向下舍入为 9007199254740992。9007199254740994、9007199254740996、90071992547409 奇数98 等都可以准确表示,但不是整数可以精确表示的整数越稀疏(或负数越大),直到达到最大值Number.MAX_VALUE == 1.7976931348623157e+308

【讨论】:

  • 很好,有道理。我没有用任何语言做过很多数学运算,所以我不会注意到。
【解决方案2】:

在 JavaScript 中只有一种数字类型:IEEE 754 双精度浮点数(称为number。)

D. Crockford 的这篇文章很有趣:

http://yuiblog.com/blog/2009/03/10/when-you-cant-count-on-your-numbers/

【讨论】:

    猜你喜欢
    • 2014-12-12
    • 2021-05-06
    • 2014-09-27
    • 2016-02-18
    • 1970-01-01
    • 2010-09-30
    • 2018-06-08
    • 1970-01-01
    相关资源
    最近更新 更多