[PHP 7, PHP 8]
intdiv — Integer 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
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:
However, this isn't:
Consider an example where either of the parameters is negative:
sree dot millu at gmail dot com ¶
2 years ago
@AmeenRoss
This does NOT seem to be equal to intdiv:
See this example code
//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
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] :
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;
}