我是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.这可能是什么原因?这只是我提交的一些错误还是存在逻辑?
答案 0 :(得分:1)
你有没有试过fmod
函数查找示例--->
http://www.php.net/manual/en/function.fmod.php
答案 1 :(得分:1)
我不太确定,但如果您使用32位计算机,问题可能是整数$id
超出范围,因此被解释为浮点。
答案 2 :(得分:1)
来自php.net
请注意,运算符%(模数)仅适用于整数(介于-214748348和2147483647之间),而fmod()适用于短数和大数。