PHP数学:为什么mod(%)不能与fac(13)一起工作?

PHP数学:为什么mod(%)不能与fac(13)一起工作?,php,math,floating-point,Php,Math,Floating Point,好吧,这件事我无法理解:我今天一定很忙。为什么(13!mod 10)在数字以两个0结尾时显示为4 试试这个: <?php $thirteen_fac = 6227020800; echo $thirteen_fac % 10; ?> 结果是4。预期为0 我一定忘了一件非常明显的事情…6227020800对于一个整数来说太大了(无论如何,在32位系统上)。PHP将它作为浮点存储在变量中。因此,模运算将使用不精确的上/下舍入数作为基础。在64位PHP上运行良好。在32位PHP中是否

好吧,这件事我无法理解:我今天一定很忙。为什么(13!mod 10)在数字以两个0结尾时显示为4

试试这个:

<?php $thirteen_fac = 6227020800;
echo $thirteen_fac % 10; ?>

结果是4。预期为0


我一定忘了一件非常明显的事情…

6227020800
对于一个整数来说太大了(无论如何,在32位系统上)。PHP将它作为浮点存储在变量中。因此,模运算将使用不精确的上/下舍入数作为基础。

在64位PHP上运行良好。在32位PHP中是否溢出了32位int?在应用模数之前回显您的var以查看是否有溢出。对不起,这基本上是伪代码。是的,我也期望零。不知道我为什么要放十个。更多的证据表明这是漫长的一天,我刚用数字开始了两个变量。LOLI是64位的。无溢出:(您可能能够使用或函数。