Beware that negative zero does not compare equal to positive zero.
(PHP 4, PHP 5, PHP 7, PHP 8)
bccomp — Compare deux nombres de grande taille
Compare l'opérande num1
avec l'opérande num2
et retourne le
résultat sous forme d'un entier.
num1
L'opérande de gauche, sous la forme d'une chaîne de caractères.
num2
L'opérande de droite, sous la forme d'une chaîne de caractères.
scale
Le paramètre optionnel scale
est utilisé pour définir le nombre de digits après la décimale
qui sera utilisé dans la comparaison.
Retourne 0
si les deux opérandes sont égaux, 1
si l'opérande
num1
est plus grand que l'opérande
num2
, -1 sinon.
Version | Description |
---|---|
8.0.0 |
scale est désormais nullable.
|
Exemple #1 Exemple avec bccomp()
<?php
echo bccomp('1', '2') . "\n"; // -1
echo bccomp('1.00001', '1', 3); // 0
echo bccomp('1.00001', '1', 5); // 1
?>
BEWARE! left and right operand is string!! so number in E-notation like 9.012E-6 need to be converted with sprintf('%F') to string
Improvement of functions bcmax() and bcmin() originaly written by frank at booksku dot com
<?php
function bcmax() {
$args = func_get_args();
if (count($args)==0) return false;
$max = $args[0];
foreach($args as $value) {
if (bccomp($value, $max)==1) {
$max = $value;
}
}
return $max;
}
function bcmin() {
$args = func_get_args();
if (count($args)==0) return false;
$min = $args[0];
foreach($args as $value) {
if (bccomp($min, $value)==1) {
$min = $value;
}
}
return $min;
}
?>