javascript - 为什么计算的模/余数运算符对于大数是错误的?
问题描述
我试图理解为什么我无法使用 JavaScript 计算正确的模数。我尝试过的操作是:
错误的答案
28493595674446332150349236018567871332790652257295571471311614363091332152517 % 6 = 4
结果应该是 1。
28493595674446332150349236018567871332790652257295571471311614363091332152517 % 6 = 1
我试图将这个数字转换为 BN,但不幸的是我总是得到相同的答案。但是,如果您使用 wolfram alpha 或其他数学软件,它会返回正确的答案。
这是怎么回事?我做错了什么?
解决方案
JavaScript 中的整数范围是 +/- 9007199254740991 (Number.MAX_SAFE_INTEGER)。您的号码根本超出 JS 的范围。
您还可以使用 BigInt 表示法来获得正确答案。
28493595674446332150349236018567871332790652257295571471311614363091332152517n % 6n
推荐阅读
- reactjs - React App 无法在 Microsoft Edge 浏览器上运行,但在 Chrome 和 Firefox 上运行良好
- objective-c - Xcode 12,如何在整个项目中抑制“框架标头中的双引号包含”警告
- c++ - 在 C++ 中向/从文件写入和加载大型数组
- leaflet - 传单工具提示中的图标
- pygame - 精灵的时间延迟
- azure - Azure DevOps 2019 本地实例仪表板
- c++ - 我正在尝试打印一个简单的输入,不同之处在于它最后有一个换行符
- arrays - 涉及行元素对排列的问题
- java - 为什么这个涉及通配符的赋值在 Java 中是合法的?
- javascript - 根据第一列中的值禁用表中的按钮