php - PHP 上的模数结果错误,但 Python 上的结果正确
问题描述
我在 PHP 上操作这个数字时遇到了问题
前任:
72 ** 79 % 3337
当我使用
echo 72 ** 79 % 3337 // Result is int(0)
然后我尝试分成这个
$num = number_format(72 ** 79, 0, '', '');
echo $num % 3337; // Result is 1069
然后我再次尝试使用 fmod() 和 bcmod()
$num = number_format(72 ** 79, 0, '', '');
echo fmod($num, 3337); // Result is 2255
echo bcmod($num, 3337); // Result is 2255
但是,我想要的结果是 285,而当使用 Python 时,答案是正确的。
为什么会这样?任何解决方案?
解决方案
您溢出了浮点分辨率,因此您需要使用 bcmath 进行所有数学运算,包括求幂:
$num = bcpow(72, 79);
echo bcmod($num, 3337);
输出
285
推荐阅读
- spartacus-storefront - 如何覆盖特定插槽上的组件
- angular - 打开第三方页面并根据同一选项卡中的条件关闭
- kubernetes - Kubernetes operator-sdk:如何删除控制器?
- c++ - 类的成员变量需要更多内存:地址变化?
- selenium - 当 @BeforeTest 方法失败时,为什么它没有在 testng-failed.xml 中列出?
- python - 用它的一个值交换一个键——python字典——另一个问题
- c# - 尝试从 .net core 5 应用程序连接 aws mq 上的 rabbit mq 时出现异常
- r - 如何合并名称输入错误的行并将它们各自的值相加?
- r - data.table:拆分列,然后从宽格式到长格式
- vb.net - VB.Net 代码解压缩受密码保护的文件