繁体   English   中英

为什么计算的模/余数运算符对于大数是错误的?

[英]Why the modulo/remainder operator calculated is wrong for large numbers?

我试图理解为什么我无法使用 JavaScript 计算正确的模数。 我试过的操作是:

错误的答案

28493595674446332150349236018567871332790652257295571471311614363091332152517 % 6 = 4

结果应该是 1。

28493595674446332150349236018567871332790652257295571471311614363091332152517 % 6 = 1

我曾尝试将此数字转换为 BN,但不幸的是我总是得到相同的答案。 但是,如果您使用 wolfram alpha 或其他数学软件,它会返回正确的答案。

这是怎么回事? 我做错了什么?

JavaScript 中的整数范围是 +/- 9007199254740991 (Number.MAX_SAFE_INTEGER)。 您的数字超出了 JS 的范围。

您还可以使用 BigInt 表示法来获得正确答案。 28493595674446332150349236018567871332790652257295571471311614363091332152517n % 6n

请参阅什么是 JavaScript 的最高整数值,一个数字可以在不丢失精度的情况下达到?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM