ʫ

Sie haben den Artikel erfolgreich in den Warenkorb gelegt.
Was möchten Sie als nächstes tun?

Weiter einkaufen Zur Kasse

Eine Zahl mit PHP runden oder formatieren

Bei der Programmierung mit Zahlen und PHP kommt es oft vor, dass Sie eine Fließkomma Zahl zu einer ganzen Zahl runden müssen. Ein Fehler, den man hier schnell machen kann, ist die Rundung der Zahl fehlerhaft zu machen, beispielsweise ohne den Wert hinter der Komma zu berücksichtigen. Den meisten Programmierern passiert es oft dass bei der Rundung einer Zahl mit PHP nur den ganzzahliger Anteil zurückgegeben wird.

Problematik und oft gemachte Fehler - Zahlen runden mit PHP

Wenn Sie die Zahl 67,23 haben und diese abruden wollen, können Sie schnell so etwas mit PHP programmieren:
Achtung: PHP arbeitet mit Zahlen nach dem englischen Format wo der Punkt als Trennzeichen gilt. Das bedeutet, dass wenn Sie mit deutschen Zahlen arbeiten wollen, müssen Sie vorher eine entsprechende Konvertierung machen.

$nIntZahl = intval(67.23);
echo $nIntZahl; // Gibt 67 zurück - das ist auch richtig

Wenn Sie aber folgendes machen:

$nIntZahl = intval(67.88);
echo $nIntZahl; // Gibt wieder 67 zurück - das ist falsch!

An der Stelle kann man mit der PHP Funktion intval nur den ganzzahliger Anteil erhalten und die Rundung ist fehlerhaft.

Lösung - Zahl runden mit PHP

Wenn Sie die Zahl richtig runden wollen, so können Sie so vorgehen:

$nIntZahl = round(67.88, 0);
echo $nIntZahl; // Gibt 68 zurück - das ist richtig gerundet!

Die PHP Funktion round nimmt 2 Parameter - die Zahl und die Genauigkeit (Anzahl der Nachkommastellen). Bei Genauigkeit 0 erhalten Sie eine ganze Zahl. Wenn Sie eine Genauigkeiten von 2 haben, so hätten Sie folgendes:

$nIntZahl = round(67.889, 2);
echo $nIntZahl; // Gibt 67,89 zurück - das ist richtig gerundet!

Hier wird die 889 in 89 gerundet, was rein mathematisch korrekt ist.
Eine weitere Alternative eine Zahl richtig zu runden und direkt zu formatieren ist die Funktion number_format. Mit der PHP Funktion number_format können Sie Ihre Zahlen direkt in die deutsche Schreibweise wandeln:

$nIntZahl = number_format(23467.889, 1, ",", ".");
echo $nIntZahl; // Gibt 234.67,9 zurück - das ist richtig gerundet!

Die Funktion number_format nimmt 4 Parameter - Die Zahl, die Sie mit PHP runden möchten, die Anzahl der Nachkommastellen, das Trennzeichen (in dem Fall , für deutsche Zahlen) und das tausender Trennzeichen (in dem Fall auch die Komma). Somit hätten Sie zwei Fliegen mit einer Klappe geschlagen.

û