在php中获取余数/%运算符引发错误

在php中获取余数/%运算符引发错误,php,Php,我是php新手,在做一些数学计算时,发现发生了这种奇怪的事情 $numOfDiffChars = 62; $id = 285355773910; $remainder = $id % $numOfDiffChars; echo "Remainder: ".$remainder." ID: ".$id." NumOfElems: ".$numOfDiffChars." ",($id - floor($id/$numOfDiffChars)*$numOfDiffChars); 答案如下: 剩余:

我是php新手,在做一些数学计算时,发现发生了这种奇怪的事情

$numOfDiffChars = 62;
$id = 285355773910;
$remainder = $id % $numOfDiffChars;
echo "Remainder: ".$remainder." ID: ".$id." NumOfElems: ".$numOfDiffChars."  ",($id - floor($id/$numOfDiffChars)*$numOfDiffChars);
答案如下: 剩余:10 ID:28535773910 NumOfElems:62 26


它表示%运算符给出余数10,而数学上它是26。这可能是什么原因?是我犯了错误还是有逻辑?

您是否尝试过
fmod
函数查找-->
我不太确定,但是如果您使用32位机器,问题可能是整数
$id
超出了界限,因此被解释为浮点

来自php.net


请注意,运算符%(模数)仅适用于整数(介于-214748348和2147483647之间),而fmod()适用于短数字和大数字。

我知道这没有帮助,但在x64 Debian上的PHP5.3.3上可以正确使用。这可能是一个32位的问题,但我不确定。是的,这是一个版本问题。请在此处尝试您的代码。我已经测试过你的代码,它只给出26。是的,在我的系统中它给出10。但当我在网上尝试时,它显示了26。因此它要么是php verison问题,要么是Peulo所说的32位问题。是的,就像Peulo所说的32位问题。它在给定的链接上运行良好