калькулятор — PHP по модулю причуды

Я не должен знать достаточно о модуле с php. Я получаю странный результат.

echo (-38 % 26); results in -12

Что мне кажется правильным ответом. Google калькулятор возвращается 14. Какой правильный ответ для упражнения, над которым я работаю.

Что с этим?

(-38) по модулю 26 =

2

Решение

Как взято из руководства по PHP на arthimetic:

Результат оператора модуля % имеет тот же знак, что и дивиденд
— то есть результат $a % $b будет иметь тот же знак, что и $a,

Различные языки определяют, какой знак будет воспринимать остаток по-разному (Python будет использовать делитель, в то время как PHP использует дивиденд, например.) Подробнее об этом можно прочитать на википедия.

2

Другие решения

Вам нужно использовать

echo ((-38 + 26) % 26);

Вы можете создать функцию, которая будет работать с положительными и отрицательными значениями $ a, как вы и предполагали:

function modulo($a, $b) { return ($a + $b) % $b; }
0

По вопросам рекламы [email protected]