Eintrag-Details: Zahlen formatieren in PHP mit number_format()

02.02.2006

Zahlen formatieren in PHP mit number_format()

Häufig erreicht mich die Frage: wie kann ich meine ausgegebenen Zahlen am besten in PHP formatieren? PHP selbst bietet hierzu die nützliche Funktion number_format(), mit der man die formatierte Ausgabe von Zahlen steuern kann.

[Mehr:]

Die Funktion lässt sich recht leicht anwenden. In dem beigefügten Skript, werden zwei Artikel aus einer Bestellung angezeigt. Um die Zahl, beispielsweise für den Einzelpreis, formatiert auszugeben, genügt es, die Ausgabe so anzugeben:

echo number_format($einzelpreis[$k], 2);

Code herunterladen

Es wird dann mit dem Skript die folgende Tabelle ausgegeben:

Produkt Anzahl Einzelpreis Gesamt
Farbstift rot 5.00 3.25 16.25
Super-Computer 1.00 2,399.50 2,399.50

Die etwas gewöhnungsbedürftige Formatierung bei den großen Zahlen, ist auf die Standardeinstellung für amerikanische Zahlenformate zurückzuführen. Leider berücksichtigt die Funktion number_format() nicht die entsprechende Einstellung über setlocale(), so dass man hier die Einteilung für Dezimalkomma und Tausenderpunkt selbst übergeben muss. Das passiert mit zwei weiteren Parametern, die an number_format übergeben werden:

echo number_format($einzelpreis[$k], 2, ",", ".");

Code herunterladen

Der dritte Parameter gibt an, welches Zeichen für den Dezimalpunkt verwendet werden soll. Hier in Deutschland ist es das Komma. Der vierte Parameter gibt an, welches Zeichen zum Trennen der Tausender benutzt werden soll. Hier kann ein Punkt angegeben werden, dann sieht die Ausgabe so aus:

Produkt Anzahl Einzelpreis Gesamt
Farbstift rot 5,00 3,25 16,25
Super-Computer 1,00 2.399,50 2.399,50

Wichtig ist hier nur: Wird der dritte Parameter angegeben, muss auch der vierte Parameter verwendet werden. Andernfalls wird von PHP eine Fehlermeldung ausgegeben. Falls kein Trennzeichen für die Tausender gewünscht wird, gibt man als vierten Parameter einfach einen leeren String an:

echo number_format($einzelpreis[$k], 2, ",", "");

Code herunterladen

Damit wird die Tabelle dann so ausgegeben:

Produkt Anzahl Einzelpreis Gesamt
Farbstift rot 5,00 3,25 16,25
Super-Computer 1,00 2399,50 2399,50

Für die rechtsbündige Ausrichtung der Zahlen und Überschriften ist übrigens kein PHP-Befehl zuständig. Dies wird ausschließlich in HTML realisiert, indem die entsprechenden Tabellen-Zellen mit dem Style: style="text-align: right" versehen werden.

Hinweis: Diesen Text und die enthaltenen Beispielprogramme und Skripte dürfen Sie zum Erlernen der einzelnen Techniken und auch als Grundlage für Ihre eigenen Projekte auf eigene Gefahr kostenlos nutzen.

Bitte denken Sie daran, dass alle Texte und Quellcodes trotzdem urheberrechtlich geschützt sind. Eine direkte Weitergabe ist nur nach ausdrücklicher schriftlicher Genehmigung gestattet.

Permalink 02.02.2006 11:25:47, von Marian Email , 360 Wörter, 34369 mal angeschaut   German (DE) Kategorien: PHP

Kommentare, Pingbacks:

Kommentar von: Martin [Besucher]
Ich muss in PHP (OHNE HTML) eine Zahl rechtsbündig ausgeben (es wird mittels PHP ein email generiert, das eine zahlenspalte enthält - und das email wird als reines textmail gesendet.

irgendeine idee, wie das formatieren (mit fürhenden leerzeichen in php zu realisieren ist ?


mfg

martin

Permalink 28.02.2007 @ 10:55
Kommentar von: Martin [Besucher]
Ich muss in PHP (OHNE HTML) eine Zahl rechtsbündig ausgeben (es wird mittels PHP ein email generiert, das eine zahlenspalte enthält - und das email wird als reines textmail gesendet.

irgendeine idee, wie das formatieren (mit fürhenden leerzeichen in php zu realisieren ist ?


mfg

martin

Permalink 28.02.2007 @ 10:57

Kommentar schreiben:

Ihre E-Mail-Adresse wird nicht angezeigt.
Ihre URL wird angezeigt.
Antispam-Feld
Erlaubte XHTML Tags: <p, ul, ol, li, dl, dt, dd, address, blockquote, ins, del, span, bdo, br, em, strong, dfn, code, samp, kdb, var, cite, abbr, acronym, q, sub, sup, tt, i, b, big, small>
Optionen:
 
(Zeilenumbrüche werden zu <br />)
(Setze Cookies für Name, eMail & URL)

Der Blogger, der erstaunt auf den Bildschirm starrt

Werbung

Online-Kurse

  • Bequem PHP lernen bei freier Zeiteinteilung von zuhause
  • Der Onlinekurs den jeder versteht
  • www.lernpilot.de/wbt/

Konnte ich helfen?

mehr Werbung