javascript - 为什么 888888888888888888888 在 JavaScript 中等于 888888888888888900000
问题描述
为什么 888888888888888888888 在 JavaScript 中等于 888888888888888900000
console.log(888888888888888888888 === 888888888888888900000)
在铬控制台
解决方案
这是因为整数只能在 JavaScript 中精确表示,最高可达 2^53 - 1
问题是,在 2^53 - 1 之后,没有足够的位来表示这个数字。因此,当您设置更高的数字时,您会丢失信息,并且您实际存储在内存中的内容是不可靠的。在您的情况下,这两个数字在转换为二进制后是相同的。这就是为什么他们是平等的
推荐阅读
- arrays - Collect_set 与 Hive 中的案例
- azure - PublishCucumberReport - 找不到黄瓜报告的输出路径
- reactjs - 这个 useRef 是不必要的吗?
- python - 如何使用 SQLAlchemy 创建 Postgres 数据库
- java - IntelliJ 如何在命令行中解决依赖关系并运行 spring boot (maven) 应用程序,这是不可能的?
- php - Gmail API php创建标签作为子标签
- java - 请帮助我,如何使代码打印出地址的完整详细信息作为输出而不是空输出
- javascript - 向 React.js 中的数组添加新值后出现警报问题
- c++ - 为什么这个函数变量只有在它是静态的时候才有效?
- javascript - 用茉莉花测试错误和承诺