(PHP 4, PHP 5, PHP 7)
round — Arrondit un nombre à virgule flottante
$val
[, int $precision
= 0
[, int $mode
= PHP_ROUND_HALF_UP
]] ) : float
Retourne la valeur arrondie de val
à 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.
Note: PHP ne gère pas correctement les chaînes telles que "12 300,2", par défaut. Reportez-vous à la conversion de chaînes.
val
La valeur à arrondir.
precision
Le nombre optionnel de décimales à arrondir.
Si la precision
est positive,
l'arrondi se produit après la virgule.
Si la precision
est négative,
l'arrondi se produit avant la virgule.
Si la valeur absolue de precision
est plus grand ou égal au nombre de chiffres, le résultat
de l'arrondi est égal à 0
mode
Utilisez une des constantes suivantes pour spécifier le mode d'arrondi.
Constantes | Description |
---|---|
PHP_ROUND_HALF_UP |
Arrondit val à une precision
supérieure de place décimale en s'éloignant de zéro lorsqu'il est à mi-chemin.
Par exemple, 1.5 deviendra 2 et -1.5 deviendra -2.
|
PHP_ROUND_HALF_DOWN |
Arrondit val à une precision
inférieure de place décimale en s'approchant de zéro lorsqu'il est à mi-chemin.
Par exemple, 1.5 deviendra 1 et -1.5 deviendra -1.
|
PHP_ROUND_HALF_EVEN |
Arrondit val à la precision
de place décimal vers la valeur paire la plus proche.
|
PHP_ROUND_HALF_ODD |
Arrondit val à la precision
de place décimal vers la valeur impaire la plus proche.
|
La valeur arrondie à la precision
donnée en tant que nombre décimal.
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(1.95583, 2));
var_dump(round(1241757, -3));
var_dump(round(5.045, 2));
var_dump(round(5.055, 2));
?>
L'exemple ci-dessus va afficher :
float(3) float(4) float(4) float(4) float(1.96) float(1242000) float(5.05) float(5.06)
Exemple #2 Comment precision
affecte un flottant
<?php
$number = 1346.21;
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));
var_dump(round($number, -4));
?>
L'exemple ci-dessus va afficher :
float(1346.21) float(1346.2) float(1346) float(1350) float(1300) float(1000) 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 '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.54, 1, PHP_ROUND_HALF_UP));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_UP));
var_dump(round(-1.54, 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.54, 1, PHP_ROUND_HALF_DOWN));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_DOWN));
var_dump(round(-1.54, 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.54, 1, PHP_ROUND_HALF_EVEN));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_EVEN));
var_dump(round(-1.54, 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.54, 1, PHP_ROUND_HALF_ODD));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_ODD));
var_dump(round(-1.54, 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.5) float(-1.6) float(-1.5) Utilisation de PHP_ROUND_HALF_DOWN avec une précision d'une décimale float(1.5) float(1.5) 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.5) float(-1.6) float(-1.5) Utilisation de PHP_ROUND_HALF_ODD avec une précision d'une décimale float(1.5) float(1.5) float(-1.5) float(-1.5)
Version | Description |
---|---|
5.3.0 |
Le paramètre mode a été ajouté.
|
5.2.7 | Le fonctionnement interne de round() a été modifié afin d'être conforme au standard C99. |