首页 > 解决方案 > 为什么 888888888888888888888 在 JavaScript 中等于 888888888888888900000

问题描述

为什么 888888888888888888888 在 JavaScript 中等于 888888888888888900000

console.log(888888888888888888888 === 888888888888888900000)

在铬控制台

标签: javascript

解决方案


这是因为整数只能在 JavaScript 中精确表示,最高可达 2^53 - 1

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER

问题是,在 2^53 - 1 之后,没有足够的位来表示这个数字。因此,当您设置更高的数字时,您会丢失信息,并且您实际存储在内存中的内容是不可靠的。在您的情况下,这两个数字在转换为二进制后是相同的。这就是为什么他们是平等的


推荐阅读