Сравнивает два числа произвольной точности

# BcMath\Number::compare

(PHP 8 >= 8.4.0)

BcMath\Number::compare — Сравнивает два числа произвольной точности

### Описание

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

Метод сравнивает два числа произвольной точности. Метод ведёт себя аналогично оператору космического корабля.

### Список параметров

`num`
  Значение, с которым требуется сравнить текущее.
`scale`
  Параметр `scale` указывает, сколько цифр в дробной части числа сравнивать. При значении `null` метод сравнивает все цифры.

### Возвращаемые значения

Метод возвращает `0`, если оба числа равны, `1`, если значение в переменной $this больше числа в аргументе `num`, в остальных случаях возвращает `-1`.

### Ошибки

Метод выбрасывает ошибку ValueError в следующих случаях:

- В аргументе `num` передали значение с типом string, которое сформировали неправильно с точки зрения допустимого формата числовых строк в модуле BCMath.
- Значение аргумента `scale` выходит за пределы допустимого диапазона.

### Примеры

Пример #1 Пример сравнения двух чисел методом BcMath\Number::compare() без указания значения для параметра `scale`

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

    ?>

Результат выполнения приведённого примера:

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

Пример #2 Пример сравнения двух чисел методом BcMath\Number::compare() с явным значением для параметра `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),
    );

    ?>

Результат выполнения приведённого примера:

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

### Смотрите также

- bccomp() - Сравнивает два числа произвольной точности

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open