PHP Math:为什么mod(%)不与fac(13)一起使用?

问题描述:

好吧,这个超越了我:我必须有一个漫长的一天。为什么(13!mod 10)出现为4,当数字以两个0结尾?PHP Math:为什么mod(%)不与fac(13)一起使用?

尝试了这一点:

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

结果被4.预计0

我一定是忘了什么东西非常明显......

+1

我预计0 ... – 2011-06-07 00:05:16

+0

是那些变量名? :S – 2011-06-07 00:05:50

+1

适用于64位PHP。您是否在32位PHP中溢出32位整数?在应用模数之前回应你的var,看看是否有溢出。 – 2011-06-07 00:07:00

6227020800是一个整数太大(上无论如何都是32位系统)。 PHP会将它作为float存储在您的变量中。模操作将因此使用不精确的上/下数字作为基础。

+0

Garrr。猜猜我得解决这个问题 – batman 2011-06-07 00:16:32

+0

你可以使用['bcmath'](http://php.net/bcmath)或['gmp'](http: //php.net/gmp)函数可能。 – mario 2011-06-07 00:18:31