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

php.net より

演算子 % (モジュラス) は整数 (-214748348 から 2147483647 の間) でのみ機能するのに対し、fmod() は短い数と大きな数で機能することに注意してください。

于 2013-10-10T13:34:30.913 に答える