Я не должен знать достаточно о модуле с php. Я получаю странный результат.
echo (-38 % 26); results in -12
Что мне кажется правильным ответом. Google калькулятор возвращается 14. Какой правильный ответ для упражнения, над которым я работаю.
Что с этим?
Как взято из руководства по PHP на arthimetic:
Результат оператора модуля
%
имеет тот же знак, что и дивиденд
— то есть результат$a % $b
будет иметь тот же знак, что и$a
,
Различные языки определяют, какой знак будет воспринимать остаток по-разному (Python будет использовать делитель, в то время как PHP использует дивиденд, например.) Подробнее об этом можно прочитать на википедия.
Вам нужно использовать
echo ((-38 + 26) % 26);
Вы можете создать функцию, которая будет работать с положительными и отрицательными значениями $ a, как вы и предполагали:
function modulo($a, $b) { return ($a + $b) % $b; }