BcMath\Number::compare

Compares two arbitrary precision numbers

&reftitle.description; public `int` `BcMath\Number::compare` ``BcMath\Number``string``int```num` ``int``null```scale`&null;

Compare two arbitrary precision numbers. This method behaves similar to the spaceship operator.

&reftitle.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.

&reftitle.returnvalues;

Returns `0` if the two numbers are equal, `1` if `$this` is greater than `num`, `-1` otherwise.

&reftitle.examples;

### `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),
    );
    ?>

&example.outputs;

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

### `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),
    );
    ?>

&example.outputs;

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

&reftitle.seealso;

- `bccomp`