round

(PHP 4, PHP 5, PHP 7)

roundArrondit un nombre à virgule flottante

Description

round ( float $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.

Liste de paramètres

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.

Valeurs de retour

La valeur arrondie à la precision donnée en tant que nombre décimal.

Exemples

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.60));
var_dump(round(1.955832));
var_dump(round(1241757, -3));
var_dump(round(5.0452));
var_dump(round(5.0552));
?>

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($number2));
var_dump(round($number1));
var_dump(round($number0));
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.50PHP_ROUND_HALF_UP));
var_dump(round(8.50PHP_ROUND_HALF_DOWN));
var_dump(round(8.50PHP_ROUND_HALF_EVEN));
var_dump(round(8.50PHP_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(round1.551PHP_ROUND_HALF_DOWN));
var_dump(round1.541PHP_ROUND_HALF_DOWN));
var_dump(round(-1.551PHP_ROUND_HALF_DOWN));
var_dump(round(-1.541PHP_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(round1.551PHP_ROUND_HALF_ODD));
var_dump(round1.541PHP_ROUND_HALF_ODD));
var_dump(round(-1.551PHP_ROUND_HALF_ODD));
var_dump(round(-1.541PHP_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)

Historique

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.

Voir aussi