How do you divide in php?

(PHP 7, PHP 8)

intdivInteger division

Description

intdiv(int $num1, int $num2): int

Parameters

num1

Number to be divided.

num2

Number which divides the num1.

Return Values

The integer quotient of the division of num1 by num2.

Examples

Example #1 intdiv() example

var_dump(intdiv(32));
var_dump(intdiv(-32));
var_dump(intdiv(3, -2));
var_dump(intdiv(-3, -2));
var_dump(intdiv(PHP_INT_MAXPHP_INT_MAX));
var_dump(intdiv(PHP_INT_MINPHP_INT_MIN));
var_dump(intdiv(PHP_INT_MIN, -1));
var_dump(intdiv(10));
?>

int(1)
int(-1)
int(-1)
int(1)
int(1)
int(1)

Fatal error: Uncaught ArithmeticError: Division of PHP_INT_MIN by -1 is not an integer in %s on line 8
Fatal error: Uncaught DivisionByZeroError: Division by zero in %s on line 9

See Also

  • / - Floating-point division
  • % - Integer modulus
  • fmod() - Floating-point modulo

AmeenRoss

7 years ago

This does indeed seem to be equal to intdiv:

function intdiv_1($a, $b){
    return (
$a - $a % $b) / $b;
}
?>

However, this isn't:

function intdiv_2($a, $b){
    return
floor($a / $b);
}
?>

Consider an example where either of the parameters is negative:
$param1 = -10;
$param2 = 3;
print_r([
   
'modulus' => intdiv_1($param1, $param2),
   
'floor' => intdiv_2($param1, $param2),
]);
/**
* Array
* (
*     [modulus] => -3
*     [floor] => -4
* )
*/
?>

sree dot millu at gmail dot com

2 years ago

@AmeenRoss
This does NOT  seem to be equal to intdiv:

function intdiv_1($a, $b){
    return (
$a - $a % $b) / $b;
}
?>

See this example code

$x

= 5.6;
$y = 1.4 ;

echo

intdiv($x,$y);

        echo

"\n";

    function

intdiv_1($a, $b){
    return (
$a - $a % $b) / $b;
}   

echo

intdiv_1($x,$y);
?>

//Output
5
4

oittaa

7 months ago

Python style integer division, where the result is always rounded towards minus infinity.

1 // 2 is 0
(-1) // 2 is -1
1 // (-2) is -1
(-1) // (-2) is 0

function intdiv_py(int $num1, int $num2): int{
    if (
$num1 < 0 xor $num2 < 0){
       
$num1 = abs($num1);
       
$num2 = abs($num2);
       
$remainder = $num1 % $num2;
        return
$remainder ? -1 -($num1 - $remainder) / $num2 : -$num1 / $num2;
    }
    return
intdiv($num1, $num2);
}
var_dump(intdiv_py(1, 2)); // 0
var_dump(intdiv_py(-1, 2)); // -1
var_dump(intdiv_py(1, -2)); // -1
var_dump(intdiv_py(-1, -2)); // 0
?>

polettog at gmail dot com

7 years ago

Without intdiv(), the following may be a good way (with $a and $b of type integer and not too big) :
(int)($a / $b)
?>
because in case of divisible integers, the result will be integer and there is no risk of float appearing round but below their represented value (like the case (0.1+0.7)*10).
$a and $b really needs to be of type integer though.
If they are too big and indivisible, some precision will be lost during the conversion to float and the result may be inaccurate.

Ts.Saltan

7 years ago

$a = 57;
$b = 3;

var_dump(
    intdiv($a,$b),
    intdiv_1($a,$b),
    intdiv_2($a,$b)
);

function intdiv_1($a, $b){
    return ($a-$a%$b)/$b;
}

function intdiv_2($a, $b){
    return floor($a/$b);
}
//intdiv($a, $b) == floor($a/$b) == ($a-$a%$b)/$b

admin at infis dot net dot ru

2 years ago

For earler versions PHP you may use:

function intdiv_1($a, $b) {
    $a = (int) $a;
    $b = (int) $b;
    return ($a - fmod($a, $b)) / $b;
}

How can I divide two numbers in PHP?

PHP | bcdiv() Function The bcdiv() function in PHP is an inbuilt function and is used to divide two arbitrary precision numbers. This function accepts two arbitrary precision numbers as strings and returns the division of the two numbers after scaling the result to a specified precision.

How does PHP calculate quotient?

PHP | intdiv() Function. intdiv stands for integer division. This function returns the integer quotient of the division of the given dividend and divisor. This function internally removes the remainder from the dividend to make it evenly divisible by the divisor and returns the quotient after division.

Can you do math in PHP?

PHP has a set of math functions that allows you to perform mathematical tasks on numbers.

What does != Mean in PHP?

One of the comparison operators in PHP is not equal, which is represented by the symbol != or <> and whenever we want to compare the data types of the two given values, we make use of not equal operator in PHP.