当前位置: 首页 > 面试题库 >

一个数字可以在不损失精度的情况下达到的JavaScript的最高整数值是多少?

壤驷高旻
2023-03-14
问题内容

这是由语言定义的吗?是否有规定的最大值?在不同的浏览器中是否有所不同?


问题答案:

JavaScript有两种数字类型:NumberBigInt

最常用的数字类型Number为64位浮点IEE 754数字。

该类型的最大精确整数值为Number.MAX_SAFE_INTEGER,即:

  • 2 53 -1,或
  • +/- 9,007,199,254,740,991,或
  • 九四十亿七千七百亿一百九十二亿一千五百四十四万一四十九万一千九十一

从一个角度来看:一个4千万个字节是PB(或一千TB)。

在本文中,“安全”是指能够准确表示整数并正确比较它们的能力。

从规格:

请注意,所有大小不大于2 53的正整数和负整数都可以在Number类型中表示(实际上,整数0具有+0和-0两种表示形式)。

为了安全地使用大于此值的整数,您需要使用BigInt,没有上限。

请注意,按位运算符和移位运算符对32位整数进行运算,因此在这种情况下,最大安全整数为2 31 -1或2147483647。

const log = console.log

var x = 9007199254740992

var y = -x

log(x == x + 1) // true !

log(y == y - 1) // also true !



// Arithmetic operators work, but bitwise/shifts only operate on int32:

log(x / 2)      // 4503599627370496

log(x >> 1)     // 0

log(x | 1)      // 1

关于编号为9007199254740992的主题的技术说明:该值有一个精确的IEEE-754表示形式,您可以从变量中分配和读取该值,因此对于在小于或等于整数的整数域中进行
非常仔细 选择的应用程序此值,您可以将其视为最大值。

在一般情况下,您必须将此IEEE-754值视为不精确,因为它是对逻辑值9007199254740992还是9007199254740993进行编码都是模棱两可的。



 类似资料:
  • 问题内容: 我正在尝试编写一个从用户读取5个整数并返回最高和最低值的类。这必须使用循环来完成,而不能使用数组和Integer.MIN.Value / Integer.MAX.Value。我已经成功编写了从用户那里获取5个整数并返回最大值的代码,但是我无法同时获取同一类中返回的最大值和最小值。 这是我上面提到的代码: 问题答案: 干得好 :)

  • 问题内容: 尝试如下 输出:12.0 但我想获得12.00的精度 请让我知道正确的方法,而不在字符串类中使用format()方法 问题答案: 使用而不是双重: 之所以有效,是因为保持了“精度”,构造函数将其设置为从右边的数字开始,并在中使用它。因此,如果仅将其丢弃,它就会打印出来。

  • 我的意思是,例如,我用IEEE-754单精度编码了以下数字: 上面的二进制数存储在文本字符串中。 问题是,如何在不丢失精度的情况下将这个字符串转换为IEEE-754双精度表示(有点像下面的,但值不同)? 这是用IEEE-754双精度编码的< del >相同的数。 我已经尝试使用下面的算法将第一个字符串先转换回十进制数,但它失去了精度。 我在Windows平台上使用Qt C框架。 编辑:我必须道歉,

  • 问题内容: 我的代码是 编译时出现以下错误 但是,当我使用它代替它成功编译时,那么我的问题是,当所有3个变量(即a,b和c)都是字节数据类型时,为什么需要强制转换? 问题答案: ,此处的运算符将返回,这就是您需要使用强制转换的原因。

  • 编辑:在评论中进行了一些讨论后,发现由于幸运地了解了浮点数是如何在C中实现的,我问了一些与我想问的不同的东西。 我想使用比更大的整数(对我来说是8个字节)(对我来说是8个字节),可能不会重复出现在数组或bigint库中。由于我的是16个字节,我认为只需切换类型就可以了。结果表明,即使可以表示更大的整数,你也不能在不失去精度的情况下进行操作——用这些更大的整数。所以不可能实现我想做的事情。实际上,正

  • 给定一定数量的节点,是否有公式计算AVL树的最大和最小高度? 例如: 教科书中的问题: 一棵包含3个节点、5个节点和7个节点的AVL树的最大/最小高度是多少<教科书式答案: 3个节点的AVL树的最大/最小高度为2/2,5个节点为3/3,7个节点为4/3 我不知道他们是否通过一些神奇的公式计算出来,或者他们是否画出了每个给定高度的AVL树并以这种方式确定。