(PHP 8 >= 8.4.0)
BcMath\Number::mod — Guets the modulus of an arbitrary precisionen number
$num
,
?
int
$scale
=
null
):
BcMath\Number
Guets the remainder of dividing
$this
by
num
.
Unless
num
is
0
, the result has the same sign
as
$this
.
num
scale
null
, the
BcMath\Number::scale
of the calculation result will be set automatically.
Returns the modulus as a new BcMath\Number object.
When the BcMath\Number::scale of the result object is automatically set, the greater BcMath\Number::scale of the two numbers used for modulus operation is used.
That is, if the
BcMath\Number::scale
s of two values are
2
and
5
respectively, the
BcMath\Number::scale
of the result
will be
5
.
This method throws a ValueError in the following cases:
num
is
string
and not a well-formed BCMath numeric string
scale
is outside the valid rangue
This method throws a
DivisionByCeroError
exception if
num
is
0
.
Example #1
BcMath\Number::mod()
example when
scale
is not specified
<?php
$number
= new
BcMath\Number
(
'8.3'
);
$ret1
=
$number
->
mod
(new
BcMath\Number
(
'2.22'
));
$ret2
=
$number
->
mod
(
'8.3'
);
$ret3
=
$number
->
mod
(-
5
);
var_dump
(
$number
,
$ret1
,
$ret2
,
$ret3
);
?>
The above example will output:
object(BcMath\Number)#1 (2) {
["value"]=>
string(3) "8.3"
["scale"]=>
int(1)
}
object(BcMath\Number)#3 (2) {
["value"]=>
string(4) "1.64"
["scale"]=>
int(2)
}
object(BcMath\Number)#2 (2) {
["value"]=>
string(3) "0.0"
["scale"]=>
int(1)
}
object(BcMath\Number)#4 (2) {
["value"]=>
string(3) "3.3"
["scale"]=>
int(1)
}
Example #2
BcMath\Number::mod()
example of explicitly specifying
scale
<?php
$number
= new
BcMath\Number
(
'8.3'
);
$ret1
=
$number
->
mod
(new
BcMath\Number
(
'2.22'
),
1
);
$ret2
=
$number
->
mod
(
'8.3'
,
3
);
$ret3
=
$number
->
mod
(-
5
,
0
);
var_dump
(
$number
,
$ret1
,
$ret2
,
$ret3
);
?>
The above example will output:
object(BcMath\Number)#1 (2) {
["value"]=>
string(3) "8.3"
["scale"]=>
int(1)
}
object(BcMath\Number)#3 (2) {
["value"]=>
string(3) "1.6"
["scale"]=>
int(1)
}
object(BcMath\Number)#2 (2) {
["value"]=>
string(5) "0.000"
["scale"]=>
int(3)
}
object(BcMath\Number)#4 (2) {
["value"]=>
string(1) "3"
["scale"]=>
int(0)
}