Как делить числа без остатка в PHP?

Как делить числа, но исключать остаток в PHP?

Просто передайте полученное значение в int.

$n = (int) ($i / $m); 

Интересные функции (в зависимости от того, что вы хотите достичь, и если вы ожидаете, что отрицательные целые числа будут разделены) – это floor() , ceil() и round() .

Для большинства практических целей принятый ответ правильный.

Однако для построений, где целые числа имеют ширину 64 бита, не все возможные целочисленные значения представляются как float с двойной точностью; См. Мой комментарий к принятому ответу для получения дополнительной информации.

Вариант

 $n = ($i - $i % $m) / $m; 

(код, взятый из комментария KingCrunch в другом ответе) позволит избежать этой проблемы в зависимости от желаемого поведения округления (помните, что результат оператора модуля может быть отрицательным).

Помимо решений выше, таких как $result = intval($a / $b) существует один частный случай:

Если вам требуется целочисленное деление (без остатка) на некоторую степень двух ( $b равно 2 ^ N ), вы можете использовать побитовое смещение вправо:

 $result = $a >> $N; 

где $ N – число от 1 до 32 в 32-разрядной операционной системе или 64 для 64-разрядных.

Иногда это полезно, потому что это самое быстрое решение для случая $ b – это сила двух.

И есть обратная (будьте осторожны из-за переполнения!) Операции для умножения на мощность двух:

 $result = $a << $N; 

Надеюсь, это тоже поможет кому-то.

или вы можете просто сделать intval (13/2) дает 6

используйте modulo в php:

 $n = $i % $m;