[PHP] Zahlen runden mit PHP

Dieser Beitrag ist auch verfügbar in: Englisch

Hallo zusammen,

heute mal wieder ein bisschen PHP. Eine kleine Anleitung zum hantieren mit Zahlen in PHP. Genauer gesagt das runden von Zahlen.

In PHP gibt es einige Funktionen mit denen man Zahlen runden kann. Dazu zählen number_format, ceil, floor und round. Mein persönlicher Liebling ist number_format. Warum?

Weil diese Funktion nicht nur rundet, sondern die Zahl auch gleich noch vernünftig Formatiert, soweit gewünscht. Der Syntax ist:

Syntax: string <strong>number_format</strong> (float Zahl [, int Dezimalstellen [, string Dezimaltrenner, string Tausendertrenner]])

Die Funktion kann mit einem Parameter, 2 oder 4 aufgerufen werden, nicht jedoch mit 3. Also

number_format (Zahl);
number_format (Zahl, Dezimalstellen)
oder
number_format (Zahl, Dezimalstellen, Dezimaltrenner, Tausendertrenner);

Ein Beispiel:

number_format (15329.6956, 2, ",", ".");

Ergibt eine Ausgabe von: 15.329,70

Die nächste Funktion, bzw. Funktionen sind ceil und floor. Diese runden einfach auf (ceil) oder ab(floor). Der Syntax lautet float ceil ( float $zahl ) bzw. float floor ( float $zahl ). In beiden Fällen wird auf die nächste Ganzzahl auf- bzw. abgerundet.

Und zu guter letzt die Funktion round. Sie ist das Mittelstück zwischen den vorherigen 3 Funktionen. Sie rundet einen Fließkommawert auf oder ab und man kann die Nachkommastellen angeben. Der Syntax lautet:
float <strong>round</strong> ( float <code>$zahl [, int $dezimalstellen = 0 [, int $modus]] )

Ein Beispiel:

round(15.1698, 2) ergibt: 15.17

Beachte das beim Programmieren immer mit dem Englischen Nummernformat gearbeitet wird. Dezimalstellen werden mit einem Punkt „.“ abgetrennt und Tausenderstellen (wenn Sie denn einen Trenner haben) mit einem Komma „,“. Also genau andersrum als bei uns.
Deswegen ist die number_format Funktion ja auch so interessant ;)

Viele Grüße
Gordon

0 Antworten

Hinterlassen Sie einen Kommentar

Wollen Sie an der Diskussion teilnehmen?
Feel free to contribute!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*