(PHP 4, PHP 5, PHP 7, PHP 8)
number_format — Formatiert eine Zahl mit Tausender-Trennzeichen
$num
,$decimals
= 0,$decimal_separator
= ".",$thousands_separator
= ","Formatiert eine Zahl mit Tausender-Trennzeichen und optionalen Dezimalziffern und verwendet dabei das Kaufmännische Runden (aufrunden ab der Hälfte).
num
Die zu formatierende Zahl.
decimals
Bestimmt die Anzahl an Nachkommastellen.
Wenn der Wert 0
ist, wird das Dezimaltrennzeichen
decimal_separator
im Rückgabewert weggelassen.
Wenn der Wert negativ ist, wird num
seit
PHP 8.3.0 auf decimals
signifikante Stellen vor
dem Dezimaltrennzeichen gerundet.
Vor PHP 8.3.0 wurden negative Werte ignoriert und genauso behandelt wie
0
.
decimal_separator
Bestimmt das Trennzeichen für die Nachkommastellen.
thousands_separator
Bestimmt das Tausendertrennzeichen.
Eine formatierte Version von num
.
Version | Beschreibung |
---|---|
8.3.0 |
Behandlung negativer Werte für decimals
hinzugefügt.
|
8.0.0 | Vor dieser Version akzeptierte number_format() einen, zwei oder vier Parameter (aber nicht drei). |
7.2.0 |
number_format() wurde geändert, so dass es nicht
mehr -0 zurückgeben kann; zuvor konnte
-0 zurückgegeben werden, z. B. wenn
num gleich -0.01 war.
|
Beispiel #1 number_format()-Beispiel
Beispielsweise notiert man in Frankreich normalerweise zwei Dezimalstellen mit einem Komma (',') als Trennzeichen sowie ein Leerzeichen (' ') zur Gruppierung der Tausender. Das folgende Beispiel zeigt verschiedene Varianten eine Zahl zu formatieren:
<?php
$number = 1234.56;
// Englische Notation (Standard)
$english_format_number = number_format($number);
// 1,235
// Französische Notation
$nombre_format_francais = number_format($number, 2, ',', ' ');
// 1 234,56
$number = 1234.5678;
// Englische Notation ohne Tausendergruppierung
$english_format_number = number_format($number, 2, '.', '');
// 1234.57
?>
Beispiel #2 Ein negativer Wert für decimals
Seit PHP 8.3.0 wird ein negativer Wert für decimals
verwendet, um die Anzahl der signifikanten Ziffern vor dem
Dezimaltrennzeichen zu runden.
<?php
$number = "1234.5678";
var_dump(number_format($number, -1));
var_dump(number_format($number, -2));
var_dump(number_format($number, -3));
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
string(5) "1,230" string(5) "1,200" string(5) "1,000"