number_format

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

number_formatFormatiert eine Zahl mit Tausender-Trennzeichen

Beschreibung

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

Formatiert eine Zahl mit Tausender-Trennzeichen und optionalen Dezimalziffern und verwendet dabei das Kaufmännische Runden (aufrunden ab der Hälfte).

Parameter-Liste

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.

Rückgabewerte

Eine formatierte Version von num.

Changelog

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.

Beispiele

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"

Siehe auch

  • money_format() - Formatiert eine Zahl als Währungs-Zeichenkette
  • sprintf() - Gibt einen formatierten String zurück
  • printf() - Liefert einen formatierten String
  • sscanf() - Überträgt einen String in ein angegebenes Format