2011-06-07 34 views
4

好吧,這個超越了我:我必須有一個漫長的一天。爲什麼(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

回答

8

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

相關問題