# BcMath\Number::compare

(PHP 8 >= 8.4.0)

BcMath\Number::compare — Compare deux nombres de précision arbitraire

### Description

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

Compare deux nombres de précision arbitraire. Cette méthode se comporte de manière similaire à l'opérateur spaceship.

### Liste de paramètres

`num`
  La valeur à laquelle comparer.
`scale`
  Spécifie le `scale` à utiliser pour la comparaison. Si `null`, tous les chiffres sont utilisés dans la comparaison.

### Valeurs de retour

Renvoie `0` si les deux nombres sont égaux, `1` si $this est plus grand que `num`, sinon `-1`.

### Erreurs / Exceptions

Cette méthode lève une ValueError dans les cas suivants :

- `num` est un string et n'est pas une chaîne numérique BCMath bien formée
- `scale` est en dehors de la plage valide

### Exemples

Exemple #1 Exemple de BcMath\Number::compare() lorsque `scale` n'est pas spécifié

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

L'exemple ci-dessus va afficher :

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

Exemple #2 Exemple de BcMath\Number::compare() en spécifiant `scale` explicitement

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

L'exemple ci-dessus va afficher :

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

### Voir aussi

- bccomp() - Compare deux nombres de grande taille