BcMath\Number::compare
Compares two arbitrary precision numbers
Description
public int BcMath\Number::compare(BcMath\Numberstringint $num
, intnull $scale
= null
)
Compare two arbitrary precision numbers.
This method behaves similar to the spaceship operator.
Parameters
-
num
-
The value to be compared to.
-
scale
-
Specify the
scale
to use for comparison.
If null
, all digits are used in the comparison.
Return Values
Returns 0
if the two numbers are equal,
1
if $this is greater than num
,
-1
otherwise.
Errors/Exceptions
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 range
Examples
Example #1 BcMath\Number::compare example when scale
is not specified
<?php
$number = new BcMath\Number('1.234');
var_dump(
$number->compare(new BcMath\Number('1.234')),
$number->compare('1.23400'),
$number->compare('1.23401'),
$number->compare(1),
);
?>
The above example will output:
int(0)
int(0)
int(-1)
int(1)
Example #2 BcMath\Number::compare example of explicitly specifying scale
<?php
$number = new BcMath\Number('1.234');
var_dump(
$number->compare(new BcMath\Number('1.299'), 1),
$number->compare('1.24', 2),
$number->compare('1.22', 2),
$number->compare(1, 0),
);
?>
The above example will output:
int(0)
int(-1)
int(1)
int(0)