Comparar dos números de precisión arbitraria

# BcMath\Number::compare

(PHP 8 >= 8.4.0)

BcMath\Number::compare — Comparar dos números de precisión arbitraria

### Descripción

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

Comparar dos números de precisión arbitraria. Este método se comporta de manera similar al operador spaceship.

### Parámetros

`num`
  El valor al que comparar.
`scale`
  Especifica el `scale` a utilizar para la comparación. Si `null`, todos los dígitos son utilizados en la comparación.

### Valores devueltos

Devuelve `0` si los dos números son iguales, `1` si $this es mayor que `num`, de lo contrario `-1`.

### Errores/Excepciones

Este método lanza una ValueError en los siguientes casos:

- `num` es un string y no es una cadena numérica BCMath bien formada
- `scale` está fuera del rango válido

### Ejemplos

Ejemplo #1 Ejemplo de BcMath\Number::compare() cuando `scale` no está especificado

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

El ejemplo anterior mostrará:

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

Ejemplo #2 Ejemplo de BcMath\Number::compare() especificando `scale` explícitamente

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

El ejemplo anterior mostrará:

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

### Ver también

- bccomp() - Comparar dos números de gran tamaño

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