number_format

(PHP 4, PHP 5, PHP 7, PHP 8)

number_formatFormate un nombre pour l'affichage

Description

number_format(
    float $num,
    int $decimals = 0,
    ?string $decimal_separator = ".",
    ?string $thousands_separator = ","
): string

Formate un nombre avec les milliers groupés et optionnellement des chiffres décimaux utilisant la règle d'arrondi arrondi au plus proche.

Liste de paramètres

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.

Valeurs de retour

Une version formatée du nombre num.

Historique

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"

Exemples

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)
echo number_format($number), PHP_EOL;
// 1,235

// Notation française
echo number_format($number, 2, ',', ' '), PHP_EOL;
// 1 234,56

$number = 1234.5678;

// Notation anglaise sans séparateur de milliers
echo number_format($number, 2, '.', ''), PHP_EOL;
// 1234.57

?>

Voir aussi

  • money_format() - Met un nombre au format monétaire
  • sprintf() - Retourne une chaîne formatée
  • printf() - Affiche une chaîne de caractères formatée
  • sscanf() - Analyse une chaîne à l'aide d'un format