1

我是 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。这可能是什么原因?只是我犯了一些错误还是有逻辑?

4

3 回答 3

1

您是否尝试过fmod函数查找示例 ---> http://www.php.net/manual/en/function.fmod.php

于 2013-10-10T13:22:18.050 回答
1

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

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

于 2013-10-10T13:22:45.107 回答
1

来自 php.net

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

于 2013-10-10T13:34:30.913 回答