Syntaxe
function bccomp($left_operand,$right_operand);
|
function bccomp($left_operand,$right_operand,$scale);
|
Paramètres
Nom |
Description |
$left_operand |
Ce paramètre permet d'indiquer le premier opérande à comparer. |
$right_operand |
Ce paramètre permet d'indiquer le deuxième opérande à comparer. |
$scale |
Ce paramètre permet d'indiquer le nombre de chiffre après la décimale à placer dans le résultat. |
Retour
Valeur |
Description |
-1 |
Cette valeur permet d'indiquer que le première opérande est plus petite que le deuxième. |
0 |
Cette valeur permet d'indiquer que les deux opérandes sont égales. |
1 |
Cette valeur permet d'indiquer que le première opérande est plus grande que le deuxième. |
Description
Cette fonction permet d'effectuer la comparaison de deux nombres avec un haut niveau de précision arithmétique.
Remarques
- Comparaison de nombres avec précision arbitraire : La fonction bccomp compare deux nombres représentés sous forme de chaînes de caractères avec une
précision arbitraire définie par l'utilisateur. Elle est particulièrement utile dans des contextes où la précision des nombres en virgule flottante standard de PHP est
insuffisante, comme dans les applications financières ou scientifiques.
- Résultat indiquant l'ordre des nombres : bccomp retourne 0 si les deux nombres sont égaux, 1 si le premier est plus grand que le second, et -1 si le
premier est plus petit. Ce fonctionnement est pratique pour des opérations nécessitant un tri ou une comparaison précise des valeurs numériques.
- Précision définie par le paramètre $scale : Le paramètre $scale permet de contrôler le nombre de chiffres après la virgule utilisés pour la
comparaison. Si ce paramètre est omis, la valeur par défaut de précision est déterminée par bcscale() ou définie à zéro, ce qui peut entraîner une comparaison basée
uniquement sur les parties entières.
- Support des nombres négatifs : Contrairement à certaines fonctions PHP pouvant mal gérer les nombres négatifs, bccomp accepte correctement les
valeurs négatives. Par exemple, comparer "-5.67" et "3.14" retourne -1, car le premier nombre est plus petit que le second.
- Comparaison insensible à la taille des nombres : Grâce à l'utilisation de l'extension BCMath, bccomp peut comparer des
nombres très grands ou très petits sans perte de précision, contrairement aux types numériques natifs de PHP. Cela en fait un outil essentiel pour les applications
nécessitant une manipulation de grands nombres.
- Ne traite que des chaînes de caractères numériques valides : Les paramètres passés à bccomp doivent être des chaînes de caractères numériques valides. Si une
chaîne de caractères contient des caractères non numériques ou un format incorrect, une erreur sera générée. Il est donc important de valider les entrées avant de les utiliser.
- Dépendance à l'extension BCMath : Comme toutes les fonctions de la bibliothèque BC Math, bccomp nécessite que l'extension
BC Math soit activée dans votre environnement PHP. Si elle n'est pas disponible, vous devrez la configurer ou utiliser des alternatives comme la
bibliothèque GMP.
- Outil pour les algorithmes nécessitant des comparaisons précises : bccomp est particulièrement utile dans des algorithmes impliquant des comparaisons numériques
complexes, tels que la vérification de seuils financiers, l'évaluation de conditions mathématiques ou la gestion d'algorithmes cryptographiques où la précision est essentielle.
Références
PHP 4 - Guide du développeur, Edition First Interactive, Blake Schwendiman, 2002, ISBN: 2-84427-283-5, page 372
Dernière mise à jour : Mercredi, le 25 mars 2015