(PHP 4, PHP 5, PHP 7, PHP 8)
round — Arrondit un nombre à virgule flottante
Retourne la valeur arrondie de num
à la précision precision (nombre de
chiffres après la virgule). Le paramètre precision
peut être négatif ou null : c'est sa valeur par défaut.
numLa valeur à arrondir.
precisionLe nombre optionnel de décimales à arrondir.
Si le paramètre precision est positif,
num sera arrondi en utilisant le paramètre
precision pour définir le nombre significatif
de chiffres après le point décimal.
Si le paramètre precision est négatif,
num arrondi en utilisant le paramètre
precision pour définir le nombre significatif
de chiffres avant le point décimal, i.e. le multiple le plus proche
de pow(10, -$precision), i.e. pour une
precision de -1, num
sera arrondi à 10, pour une precision de -2 à 100, etc.
modeUtilisez une des constantes suivantes pour spécifier le mode d'arrondi.
| Constantes | Description |
|---|---|
PHP_ROUND_HALF_UP |
Arrondit num en s'éloignant de zéro lorsqu'il
est à mi-chemin, arrondissant ainsi 1.5 à 2, et -1.5 à -2.
|
PHP_ROUND_HALF_DOWN |
Arrondit num en se rapprochant de zéro lorsqu'il
est à mi-chemin, arrondissant ainsi 1.5 à 1, et -1.5 à -1.
|
PHP_ROUND_HALF_EVEN |
Arrondit num à la valeur paire la plus proche
lorsqu'il est à mi-chemin, arrondissant ainsi 1.5 et 2.5 à 2.
|
PHP_ROUND_HALF_ODD |
Arrondit num à la valeur impaire la plus proche
lorsqu'il est à mi-chemin, arrondissant ainsi 1.5 à 1 et 2.5 à 3.
|
La valeur arrondie à la precision donnée en tant que nombre décimal.
La fonction lance une ValueError si mode est invalide.
Antérieur à PHP 8.4.0, un mode invalide était silencieusement convertie en PHP_ROUND_HALF_UP.
| Version | Description |
|---|---|
| 8.4.0 |
Lance désormais une ValueError si
mode est invalide.
|
| 8.0.0 |
num n'accepte plus les objets internes qui supporte
les conversions numériques.
|
Exemple #1 Exemple avec round()
<?php
var_dump(round(3.4));
var_dump(round(3.5));
var_dump(round(3.6));
var_dump(round(3.6, 0));
var_dump(round(5.045, 2));
var_dump(round(5.055, 2));
var_dump(round(345, -2));
var_dump(round(345, -3));
var_dump(round(678, -2));
var_dump(round(678, -3));
?>L'exemple ci-dessus va afficher :
float(3) float(4) float(4) float(4) float(5.05) float(5.06) float(300) float(0) float(700) float(1000)
Exemple #2 Comment precision affecte un flottant
<?php
$number = 135.79;
var_dump(round($number, 3));
var_dump(round($number, 2));
var_dump(round($number, 1));
var_dump(round($number, 0));
var_dump(round($number, -1));
var_dump(round($number, -2));
var_dump(round($number, -3));
?>L'exemple ci-dessus va afficher :
float(135.79) float(135.79) float(135.8) float(136) float(140) float(100) float(0)
Exemple #3 Exemple avec mode
<?php
echo "Mode d'arrondi avec 9.5" . PHP_EOL;
var_dump(round(9.5, 0, PHP_ROUND_HALF_UP));
var_dump(round(9.5, 0, PHP_ROUND_HALF_DOWN));
var_dump(round(9.5, 0, PHP_ROUND_HALF_EVEN));
var_dump(round(9.5, 0, PHP_ROUND_HALF_ODD));
echo PHP_EOL;
echo "Mode d'arrondi avec 8.5" . PHP_EOL;
var_dump(round(8.5, 0, PHP_ROUND_HALF_UP));
var_dump(round(8.5, 0, PHP_ROUND_HALF_DOWN));
var_dump(round(8.5, 0, PHP_ROUND_HALF_EVEN));
var_dump(round(8.5, 0, PHP_ROUND_HALF_ODD));
?>L'exemple ci-dessus va afficher :
Mode d'arrondi avec 9.5 float(10) float(9) float(10) float(9) Mode d'arrondi avec 8.5 float(9) float(8) float(8) float(9)
Exemple #4 Exemple avec mode et precision
<?php
echo "Utilisation de PHP_ROUND_HALF_UP avec une précision d'une décimale" . PHP_EOL;
var_dump(round( 1.55, 1, PHP_ROUND_HALF_UP));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_UP));
echo PHP_EOL;
echo "Utilisation de PHP_ROUND_HALF_DOWN avec une précision d'une décimale" . PHP_EOL;
var_dump(round( 1.55, 1, PHP_ROUND_HALF_DOWN));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_DOWN));
echo PHP_EOL;
echo "Utilisation de PHP_ROUND_HALF_EVEN avec une précision d'une décimale" . PHP_EOL;
var_dump(round( 1.55, 1, PHP_ROUND_HALF_EVEN));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_EVEN));
echo PHP_EOL;
echo "Utilisation de PHP_ROUND_HALF_ODD avec une précision d'une décimale" . PHP_EOL;
var_dump(round( 1.55, 1, PHP_ROUND_HALF_ODD));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_ODD));
?>L'exemple ci-dessus va afficher :
Utilisation de PHP_ROUND_HALF_UP avec une précision d'une décimale float(1.6) float(-1.6) Utilisation de PHP_ROUND_HALF_DOWN avec une précision d'une décimale float(1.5) float(-1.5) Utilisation de PHP_ROUND_HALF_EVEN avec une précision d'une décimale float(1.6) float(-1.6) Utilisation de PHP_ROUND_HALF_ODD avec une précision d'une décimale float(1.5) float(-1.5)