您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

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

JavaScript有两种数字类型:NumberBigInt

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

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

一个角度来看:一个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进行编码都是模棱两可的。

javascript 2022/1/1 18:13:59 有743人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶