Fonctions mathématiques en PHP
Vous pouvez, avec PHP, effectuer des calculs mathématiques. La liste des fonctions proposées est longue, nous allons vous présenter les plus courantes.
Plus grande ou plus petite valeur
Utilisez la fonction max() pour récupérer la plus grande valeur, et la fonction min() pour récupérer la plus petite valeur.
echo max(1, 3, 5, 6, 7); // retourne 7
echo min(1, 3, 5, 6, 7); // retourne 1
Il est possible de fournir en paramètre un tableau
echo max(array(2, 4, 5)); // retourne 5
echo min(array(2, 4, 5)); // retourne 2
Vous pouvez même fournir plusieurs tableaux, la comparaison se fera de gauche à droite.
$valMax = max(array(2, 4, 8), array(2, 5, 7)); // array(2, 5, 7)
$valMin = min(array(2, 4, 8), array(2, 5, 7)); // array(2, 4, 8)
Dans cet exemple : 2 == 2, mais 4 < 5
Arrondir les nombres
La fonction round() arrondit un nombre à virgule flottante. Il retourne l’entier supérieur si le décimal vaut 5 ou plus.
echo round(3.4); // 3
echo round(3.5); // 4
echo round(3.6); // 4
echo round(3.6, 0); // 4
echo round(1.95583, 2); // 1.96
echo round(1241757, -3); // 1242000
echo round(5.045, 2); // 5.05
echo round(5.055, 2); // 5.06
Le deuxième paramètre indique le nombre de décimales à arrondir : si le nombre est négatif, PHP arrondit à partir de ce nombre en partant de la fin.
Arrondir au nombre supérieur
La fonction ceil() retourne le nombre supérieur d’un nombre décimal.
echo ceil(4.3); // 5
echo ceil(9.999); // 10
echo ceil(-3.14); // -3
Si le nombre est négatif, le supérieur est le plus petit de ce nombre.
Arrondir au nombre inférieur
La fonction floor() retourne le nombre inférieur d’un nombre décimal
1
2
3
|
echo floor (4.3); // 5 echo floor (9.999); // 10 echo floor (-3.14); // -4 |
Si le nombre est négatif, l’inférieur est le plus grand de ce nombre
Nombre aléatoire
La fonction round() génère une valeur aléatoire.
echo mt_rand(); // 667948074
echo mt_rand(5, 15); // un nombre entre 5 et 15 inclus
Ce nombre peut être compris entre un minimum et un maximum inclus.
Convertion entre les bases
La fonction base_convert() convertit un nombre entre des bases (base décimal, base binaire, base hexadécimal..).
$decimal = '12';
echo base_convert($decimal, 10, 2); // 1100
Le deuxième paramètre indique la base du nombre actuel, et le troisième indique la base de conversion. Dans notre exemple le nombre décimal 12 (base 10) vaut 1100 en base 2 (binaire).
Pour éditer un nombre en base octale (base 8), le nombre doit commencer par 0 (zéro).
$octal = 011;
echo $octal; // vaut 9 (8+1)
Pour éditer un nombre en base hexadécimale (base 16), le nombre doit commencer par « 0x » (ou « 0X »).
$hexa = 0x11;
echo $hexa; // vaut 17 (16+1)
Sinon par défaut, le nombre est sur une base décimale (base 10).
Trigonométrie
Pour les adeptes de mathématiques, PHP propose une panoplie de fonctions trigonométriques.
echo cos(0); // -1
echo sin(0); // 0
L’angle est exprimé en radian
Contrôle sur les nombres
Les fonctions PHP peuvent contrôler :
.. si une valeur n’est pas un nombre avec la fonction is_nan().
var_dump(is_nan(acos(2))); // true car arc cosinus doit être compris entre 1 et -1
.. si un nombre est décimal avec la fonction is_float()
var_dump(is_float(3.15)); // true
… ou si un nombre est fini avec la fonction is_finite()
var_dump(is_finite(log(0))); // false
Le logarithme népérien de zéro [log(0)] est infini.