(PHP 4, PHP 5, PHP 7, PHP 8)
bcmod — Get modulus of an arbitrary precision number
Get the remainder of dividing num1
by
num2
.
The result has the same sign as num1
.
num1
The left operand, as a string.
num2
The right operand, as a string.
scale
null
, it will default to the default scale set with bcscale(),
or fallback to the value of the
bcmath.scale
INI directive.
Returns the modulus as a string.
This function throws a ValueError in the following cases:
num1
or num2
is not a well-formed BCMath numeric string.
scale
is outside the valid range.
This function throws a DivisionByZeroError
exception if num2
is 0
.
Version | Description |
---|---|
8.0.0 |
scale is now nullable.
|
8.0.0 |
Dividing by 0 now throws a DivisionByZeroError exception instead of returning null.
|
7.2.0 |
num1 and num2 are no
longer truncated to integer, so now the behavior of
bcmod() follows fmod() rather than
the % operator.
|
7.2.0 |
The scale parameter was added.
|
Example #1 bcmod() example
<?php
bcscale(0);
echo bcmod( '5', '3'); // 2
echo bcmod( '5', '-3'); // 2
echo bcmod('-5', '3'); // -2
echo bcmod('-5', '-3'); // -2
?>
Example #2 bcmod() with decimals
<?php
bcscale(1);
echo bcmod('5.7', '1.3'); // 0.5 as of PHP 7.2.0; 0 previously
?>