在PHP中获取剩余/%运算符投掷错误

时间:2013-10-10 13:16:11

标签: php

我是php的新手,正在做一些数学,发现这个奇怪的事情正在发生。

$numOfDiffChars = 62;
$id = 285355773910;
$remainder = $id % $numOfDiffChars;
echo "Remainder: ".$remainder." ID: ".$id." NumOfElems: ".$numOfDiffChars."  ",($id - floor($id/$numOfDiffChars)*$numOfDiffChars);

答案如下: 余数:10 ID:285355773910 NumOfElems:62 26

表示%运算符给出余数10,而数学表示其为26.这可能是什么原因?这只是我提交的一些错误还是存在逻辑?

3 个答案:

答案 0 :(得分:1)

你有没有试过fmod函数查找示例---> http://www.php.net/manual/en/function.fmod.php

答案 1 :(得分:1)

我不太确定,但如果您使用32位计算机,问题可能是整数$id超出范围,因此被解释为浮点。

http://php.net/manual/en/language.types.integer.php

答案 2 :(得分:1)

来自php.net

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