php8.5
Home/ Manual/ bcmath / number/ BcMath\Number::compare

BcMath\Number::compare

PHP function Edit on GitHub ✎

(PHP 8 >= 8.4.0)

Compares two arbitrary precision numbers

Description

BcMath\Number::compare(BcMath\Number|string|int $num, int|null $scale = null): int

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.

Examples

BcMath\Number::compare example when scale is not specified

php
<?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:

output
int(0)
int(0)
int(-1)
int(1)

BcMath\Number::compare example of explicitly specifying scale

php
<?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:

output
int(0)
int(-1)
int(1)
int(0)

See Also

Source: reference/bc/bcmath/number/compare.xml · from the official PHP manual (php/doc-en)