在php中获取余数/%运算符引发错误
我是php新手,在做一些数学计算时,发现发生了这种奇怪的事情在php中获取余数/%运算符引发错误,php,Php,我是php新手,在做一些数学计算时,发现发生了这种奇怪的事情 $numOfDiffChars = 62; $id = 285355773910; $remainder = $id % $numOfDiffChars; echo "Remainder: ".$remainder." ID: ".$id." NumOfElems: ".$numOfDiffChars." ",($id - floor($id/$numOfDiffChars)*$numOfDiffChars); 答案如下: 剩余:
$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位问题。它在给定的链接上运行良好