Opérations mathématiques en PHP - Letecode

Opérations math. PHP

Dernière mise à jour : 25/06/2022

Dans ce chapitre, vous apprendrez à effectuer des opérations mathématiques en PHP.

Effectuer des opérations mathématiques

PHP a plusieurs fonctions intégrées qui vous aident à effectuer plusieurs tâches, des simples additions ou soustractions aux calculs avancés. Vous avez déjà vu comment effectuer des opérations mathématiques de base dans le chapitre sur les opérateurs PHP. Voyons un autre exemple :

<?php
echo 7 + 3; // Affiche: 10
echo 7 - 2; // Affiche: 5
echo 7 * 2; // Affiche: 14
echo 7 / 2; // Affiche: 3.5
echo 7 % 2; // Affiche: 1
?>

Chaque opération mathématique a un certain niveau de priorité; généralement la multiplication et la division sont effectuées avant l'addition et la soustraction. Cependant, les parenthèses peuvent modifier cette priorité ; les expressions entre parenthèses sont toujours évaluées en premier, quel que soit le niveau de priorité de l'opération, comme illustré dans l'exemple suivant :

<?php
echo 5 + 4 * 10;         // Affiche: 45
echo (5 + 4) * 10;       // Affiche: 90
echo 5 + 4 * 10 / 2;     // Affiche: 25
echo 8 * 10 / 4 - 2;     // Affiche: 18
echo 8 * 10 / (4 - 2);   // Affiche: 40
echo 8 + 10 / 4 - 2;     // Affiche: 8.5
echo (8 + 10) / (4 - 2); // Affiche: 9
?>

Dans la section suivante, nous allons examiner certaines fonctions PHP intégrées les plus fréquemment utilisées pour effectuer des opérations mathématiques.

Trouver la valeur absolue d'un nombre

La valeur absolue d'un entier ou d'un flottant peut être trouvée avec la fonction abs(), comme illustré dans l'exemple suivant :

<?php
echo abs(5);    // Affiche: 5 (integer)
echo abs(-5);   // Affiche: 5 (integer)
echo abs(4.2);  // Affiche: 4.2 (double/float)
echo abs(-4.2); // Affiche: 4.2 (double/float)
?>

Comme vous pouvez le voir si le nombre donné est négatif, la valeur renvoyée est positive. Mais, si le nombre est positif, cette fonction renvoie simplement le nombre.

Arrondir une valeur fractionnaire vers le haut ou vers le bas

La fonction ceil() peut être utilisée pour arrondir une valeur fractionnaire à la valeur entière la plus élevée suivante, tandis que la fonction floor() peut être utilisée pour arrondir une valeur fractionnaire à la valeur entière la plus basse suivante, comme illustré dans l'exemple suivant :

<?php
echo ceil(4.2);    // Affiche: 5
echo ceil(9.99);   // Affiche: 10
echo ceil(-5.18);  // Affiche: -5
echo floor(4.2);    // Affiche: 4
echo floor(9.99);   // Affiche: 9
echo floor(-5.18);  // Affiche: -6
?>

Trouver la racine carrée d'un nombre

Vous pouvez utiliser la fonction sqrt() pour trouver la racine carrée d'un nombre positif. Cette fonction renvoie une valeur spéciale NAN pour les nombres négatifs. Voici un exemple :

<?php
echo sqrt(9);   // Affiche: 3
echo sqrt(25);  // Affiche: 5
echo sqrt(10);  // Affiche: 3.1622776601684
echo sqrt(-16); // Affiche: NAN
?>

Générer un nombre aléatoire

La fonction rand() peut être utilisée pour générer un nombre aléatoire. Vous pouvez éventuellement spécifier une plage en transmettant les arguments min, max, comme illustré dans l'exemple suivant :

<?php
// Générer un nombre aléatoire
echo rand() . "<br>";
echo rand() . "<br>";

// Générer un nombre entre 1 et 10 (inclu)
echo rand(1, 10) . "<br>";
echo rand(1, 10) . "<br>";
?>

Si la fonction rand() est appelée sans les arguments , min, max, elle renvoie un nombre pseudo-aléatoire entre 0 et getrandmax(). Lafonction  getrandmax() affiche la plus grande valeur aléatoire possible, qui n'est que de 32767 sur la plate-forme Windows. Ainsi, si vous avez besoin d'une plage supérieure à 32767, vous pouvez simplement spécifier les arguments min et .max

Convertir des nombres décimaux en binaire et vice versa

La fonction decbin() est utilisée pour convertir un nombre décimal en nombre binaire. Alors que son homologue la fonction bindec() convertit un nombre de binaire en décimal.

 

<?php
// Convertir Décimal à Binaire
echo decbin(2);    // Affiche: 10  
echo decbin(12);   // Affiche: 1100  
echo decbin(100);  // Affiche: 1100100

// De binaire à Décimal
echo bindec(10);       // Affiche: 2 
echo bindec(1100);     // Affiche: 12  
echo bindec(1100100);  // Affiche: 100
?>

Convertir des nombres décimaux en hexadécimal et vice versa

La fonction dechex() est utilisée pour convertir un nombre décimal en représentation hexadécimale. Alors que la fonction hexdec() est utilisée pour convertir une chaîne hexadécimale en un nombre décimal.

<?php
// decimal à hexadecimal 
echo dechex(255);  // Affiche: ff
echo dechex(196);  // Affiche: c4
echo dechex(0);    // Affiche: 0


// hexadecimal à decimal
echo hexdec('ff');  // Affiche: 255
echo hexdec('c4');  // Affiche: 196
echo hexdec(0);     // Affiche: 0
?>

Convertir des nombres décimaux en octal et vice versa

La fonction decoct() est utilisée pour convertir un nombre décimal en représentation octale. Alors que la fonction octdec() est utilisée pour convertir un nombre octal en nombre décimal.

<?php
// decimal to octal 
echo decoct(12);   // Affiche: 14
echo decoct(256);  // Affiche: 400
echo decoct(77);   // Affiche: 115

// Convert octal to decimal
echo octdec('14');   // Affiche: 12
echo octdec('400');  // Affiche: 256
echo octdec('115');  // Affiche: 77
?>

Convertir un nombre d'une base à un autre

La fonction base_convert() peut être utilisée pour convertir un nombre d'un système de base X à un autre. Par exemple, vous pouvez convertir décimal ( base 10 ) en binaire ( base 2 ), hexadécimal ( base 16 ) en octal ( base 8 ), octal en hexadécimal, hexadécimal en décimal, etc.

Cette fonction accepte trois paramètres : le nombre à convertir, la base dans laquelle il se trouve actuellement et la base dans laquelle il doit être converti. La syntaxe de base est la suivante :

base_convert (nombre, de la base, vers la base);

Ici, le nombre peut être soit un entier, soit une chaîne représentant un entier. Les deux autres doivent être compris entre 2 et 36 inclus. Les chiffres des nombres dont la base est supérieure à 10 seront représentés par les lettres az, où a signifie 10, b signifie 11 et z signifie 35. Voici un exemple simple pour montrer comment cette fonction fonctionne :

<?php
// Convert decimal to binary
echo base_convert('12', 10, 2);  // Affiche: 1100
// Convert binary to decimal
echo base_convert('1100', 2, 10);  // Affiche: 12

// Convert decimal to hexadecimal
echo base_convert('10889592', 10, 16);  // Affiche: a62978
// Convert hexadecimal to decimal
echo base_convert('a62978', 16, 10);  // Affiche: 10889592

// Convert decimal to octal
echo base_convert('82', 10, 8);  // Affiche: 122
// Convert octal to decimal
echo base_convert('122', 8, 10);  // Affiche: 82

// Convert hexadecimal to octal
echo base_convert('c2c6a8', 16, 8);  // Affiche: 60543250
// Convert octal to hexadecimal
echo base_convert('60543250', 8, 16);  // Affiche: c2c6a8

// Convert octal to binary
echo base_convert('42', 8, 2);  // Affiche: 100010
// Convert binary to octal
echo base_convert('100010', 2, 8);  // Affiche: 42

// Convert hexadecimal to binary
echo base_convert('abc', 16, 2);  // Affiche: 101010111100
// Convert binary to hexadecimal
echo base_convert('101010111100', 2, 16);  // Affiche: abc
?>

Remarque : La fonction base_convert() renverra toujours une valeur de chaîne. Si la valeur renvoyée est en base 10, la chaîne résultante peut être utilisée comme chaîne numérique dans les calculs et PHP la convertira en nombre lorsque le calcul sera effectué.