senäh

17senäh und so…

Code Snippet Thumb

PHP, Server & Config
30. Dez 2011
Kommentare: 3

PHP: Zahl mit 2 Nachkommastellen erhalten

Kategorien: PHP, Server & Config | 30. Dez 2011 | Kommentare: 3

Bei der Darstellung von Preisen (Euro, nicht Oscar) benötigt man meist 2 Nachkommastellen. 2,17€ ist das Format, das wir beispielsweise am Ende eines Warenkorbs bei Amazon erwarten. Hin und wieder kommt man dabei auf (eigentlich) ganze Zahlenwerte wie 17,00€. Je nach verwendeten Datentyp in der Datenbank, kann es passieren, dass PHP intern die beiden Nullen abhackt.

Um in der Darstellung trotzdem die gewünschten Nachkommstellen zu erhalten, neigt man schnell dazu, sich eine eigene Funktion zu schreiben. Wäre auch nicht weiter kompliziert. Allerdings frage ich mich bei Problemen, die nicht besonders exotischer Natur sind, ob es sowas nicht bereits in einfach gibt. Und siehe da: There’s a function for that. Name: number_format().

1
2
3
4
5
6
7
echo number_format(
    17000, // zu konvertierende zahl
    2,     // Anzahl an Nochkommastellen
    ",",   // Dezimaltrennzeichen
    "."    // 1000er-Trennzeichen
);
// erzeugt die Ausgabe "17.000,00"

Kleiner Hinweis: da die Rückgabe von number_format() ein String ist, empfiehlt es sich nur bedingt damit weiterzurechnen ;) Sollte also tatsächlich der letzte Schritt vor der Darstellung sein.

Autor: Enno

Ich bin Enno. PHP ist mein Ding, aber auch alles Neue rund um die Themen HTML5, CSS3 & Co finde ich interessant. Ich mag es Leuten zu helfen und mein Wissen weiterzugeben. Sollte dir mein Beitrag gefallen haben, lass doch nen Kommentar da oder benutze einen der Social Buttons, um deinen Dank auszudrücken ;)

Kommentare (3)

  1. Danke! Seit Jahren suche ich das Ding und endlich habe ich eine einfache Lösung!

    Das hilft mir sehr …

  2. Wobei nun gerade für Geld eher ‘money_format()’ gedacht ist…

    • Du hast Recht, danke für den Hinweis. Allerdings steht in der Doku, dass das ganze auf Windows-Systemen nicht funktioniert. Darum Obacht.