(PHP 4, PHP 5, PHP 7, PHP 8)
number_format — Formate un nombre pour l'affichage
$num
,$decimals
= 0,$decimal_separator
= ".",$thousands_separator
= ","Formate un nombre avec les milliers groupés et optionnellement des chiffres décimaux utilisant la règle d'arrondi arrondi au plus proche.
num
Le nombre à formater.
decimals
Définit le nombre de chiffres décimales.
Si 0
, le decimal_separator
est
omis de la valeur de retour.
À partir de PHP 8.3.0, lorsque la valeur est négative, num
est arrondi à decimals
chiffres significatifs avant
le point décimal.
Avant PHP 8.3.0, les valeurs négatives étaient ignorées et traitées de la
même manière que 0
.
decimal_separator
Définit le séparateur pour le point décimal.
thousands_separator
Définit le séparateur des milliers.
Une version formatée du nombre num
.
Version | Description |
---|---|
8.3.0 |
Ajout de la gestion des valeurs négatives pour decimals .
|
8.0.0 | Antérieur à cette version, number_format() accepte un, deux, ou quatre paramètres (mais pas trois). |
7.2.0 |
number_format() a été modifié pour ne plus permettre de
retourner -0 , précédemment -0 pouvait
être retourné pour des cas où num valait -0.01 .
|
Exemple #1 Une valeur négative pour decimals
À partir de PHP 8.3.0, une valeur négative pour decimals
est utilisée pour arrondir le nombre de chiffres significatifs avant le point
décimal.
<?php
$number = "1234.5678";
var_dump(number_format($number, -1));
var_dump(number_format($number, -2));
var_dump(number_format($number, -3));
?>
L'exemple ci-dessus va afficher :
string(5) "1 230" string(5) "1 200" string(5) "1 000"
Exemple #2 Exemple avec number_format()
En notation française, on utilise généralement deux chiffres après la virgule, une virgule comme séparateur décimal, et un espace comme séparateur de milliers. L'exemple suivant montre comment formater un nombre de différentes façons :
<?php
$number = 1234.56;
// Notation anglaise (par défaut)
$english_format_number = number_format($number);
// 1,235
// Notation française
$nombre_format_francais = number_format($number, 2, ',', ' ');
// 1 234,56
$number = 1234.5678;
// Notation anglaise sans séparateur de milliers
$english_format_number = number_format($number, 2, '.', '');
// 1234.57
?>