PHP Math: почему mod (%) не работает с fac (13)? - PullRequest
4 голосов
/ 07 июня 2011

Хорошо, этот вне меня: у меня, должно быть, длинный день.Почему (13! Mod 10) получается как 4, когда число заканчивается на два 0s?

Попробуйте это:

<?php $thirteen_fac = 6227020800;
echo $thirteen_fac % 10; ?>

Результат равен 4. Ожидается 0.

Должно быть, я забыл что-то чрезвычайно очевидное ...

1 Ответ

8 голосов
/ 07 июня 2011

6227020800 слишком велико для целого числа (в любом случае в 32-битной системе). PHP будет хранить его как переменную в вашей переменной. Таким образом, операция по модулю будет использовать неточное число вверх / вниз в качестве основы.

...