(PHP 4, PHP 5, PHP 7)
round — Rundet einen Fließkommawert
$val
[, int $precision = 0
[, int $mode = PHP_ROUND_HALF_UP
]] ) : float
Rundet den Parameter val auf die mit
precision angegebene Anzahl von Nachkommastellen. precision kann dabei auch null (Vorgabewert)
oder negativ sein. So wird bei einer Stellenzahl von -1 z.B. auf
volle Zehner gerundet.
Hinweis: PHP behandelt Strings wie
"12,300.2"standardmäßig nicht korrekt. Siehe String-Konvertierung.
valDer zu rundende Wert.
precisionAuf wie viele Nachkommastellen gerundet werden soll.
Ist die precision positiv,
erfolgt die Rundung nach dem Dezimalpunkt.
Ist die precision negativ,
erfolgt die Rundung vor dem Dezimalpunkt.
Ist der Absolutwert der precision größer oder gleich
der Anzahl der Stellen, ist das Rundungsergebnis gleich 0.
modeEine der folgenden Konstanten kann verwendet werden, um den Rundungsmodus festzulegen.
| Konstanten | Beschreibung |
|---|---|
PHP_ROUND_HALF_UP |
Rundet val auf
precision Dezimalstellen weg von Null.
Somit wird 1.5 zu 2 und -1.5 zu -2.
|
PHP_ROUND_HALF_DOWN |
Rundet val auf
precision Dezimalstellen hin zu Null.
Somit wird 1.5 zu 1 und -1.5 zu -1.
|
PHP_ROUND_HALF_EVEN |
Rundet val auf
precision Dezimalstellen zum nächsten
geraden Wert.
|
PHP_ROUND_HALF_ODD |
Rundet val auf
precision Dezimalstellen zum nächsten
ungeraden Wert.
|
Der auf die angegebene precision gerundete Wert als float.
Beispiel #1 round()-Beispiele
<?php
var_dump(round(3.4));
var_dump(round(3.5));
var_dump(round(3.6));
var_dump(round(3.6, 0));
var_dump(round(1.95583, 2));
var_dump(round(1241757, -3));
var_dump(round(5.045, 2));
var_dump(round(5.055, 2));
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
float(3) float(4) float(4) float(4) float(1.96) float(1242000) float(5.05) float(5.06)
Beispiel #2 Wie precision eine Gleitkommazahl betrifft
<?php
$number = 1346.21;
var_dump(round($number, 2));
var_dump(round($number, 1));
var_dump(round($number, 0));
var_dump(round($number, -1));
var_dump(round($number, -2));
var_dump(round($number, -3));
var_dump(round($number, -4));
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
float(1346.21) float(1346.2) float(1346) float(1350) float(1300) float(1000) float(0)
Beispiel #3 mode-Beispiele
<?php
echo 'Rundundsmodi mit 9.5' . PHP_EOL;
var_dump(round(9.5, 0, PHP_ROUND_HALF_UP));
var_dump(round(9.5, 0, PHP_ROUND_HALF_DOWN));
var_dump(round(9.5, 0, PHP_ROUND_HALF_EVEN));
var_dump(round(9.5, 0, PHP_ROUND_HALF_ODD));
echo 'Rundundsmodi mit 8.5' . PHP_EOL;
var_dump(round(8.5, 0, PHP_ROUND_HALF_UP));
var_dump(round(8.5, 0, PHP_ROUND_HALF_DOWN));
var_dump(round(8.5, 0, PHP_ROUND_HALF_EVEN));
var_dump(round(8.5, 0, PHP_ROUND_HALF_ODD));
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Rundundsmodi mit 9.5 float(10) float(9) float(10) float(9) Rundundsmodi mit 8.5 float(9) float(8) float(8) float(9)
Beispiel #4 mode mit precision-Beispiele
<?php
echo 'Verwendung von PHP_ROUND_HALF_UP mit 1 Dezimalstelle Genauigkeit' . PHP_EOL;
var_dump( 1.55, 1, PHP_ROUND_HALF_UP));
var_dump( 1.54, 1, PHP_ROUND_HALF_UP));
var_dump(-1.55, 1, PHP_ROUND_HALF_UP));
var_dump(-1.54, 1, PHP_ROUND_HALF_UP));
echo PHP_EOL;
echo 'Verwendung von PHP_ROUND_HALF_DOWN mit 1 Dezimalstelle Genauigkeit' . PHP_EOL;
var_dump( 1.55, 1, PHP_ROUND_HALF_DOWN));
var_dump( 1.54, 1, PHP_ROUND_HALF_DOWN));
var_dump(-1.55, 1, PHP_ROUND_HALF_DOWN));
var_dump(-1.54, 1, PHP_ROUND_HALF_DOWN));
echo PHP_EOL;
echo 'Verwendung von PHP_ROUND_HALF_EVEN mit 1 Dezimalstelle Genauigkeit' . PHP_EOL;
var_dump( 1.55, 1, PHP_ROUND_HALF_EVEN));
var_dump( 1.54, 1, PHP_ROUND_HALF_EVEN));
var_dump(-1.55, 1, PHP_ROUND_HALF_EVEN));
var_dump(-1.54, 1, PHP_ROUND_HALF_EVEN));
echo PHP_EOL;
echo 'Verwendung von PHP_ROUND_HALF_ODD mit 1 Dezimalstelle Genauigkeit' . PHP_EOL;
var_dump( 1.55, 1, PHP_ROUND_HALF_ODD));
var_dump( 1.54, 1, PHP_ROUND_HALF_ODD));
var_dump(-1.55, 1, PHP_ROUND_HALF_ODD));
var_dump(-1.54, 1, PHP_ROUND_HALF_ODD));
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Verwendung von PHP_ROUND_HALF_UP mit 1 Dezimalstelle Genauigkeit float(1.6) float(1.5) float(-1.6) float(-1.5) Verwendung von PHP_ROUND_HALF_DOWN mit 1 Dezimalstelle Genauigkeit float(1.5) float(1.5) float(-1.5) float(-1.5) Verwendung von PHP_ROUND_HALF_EVEN mit 1 Dezimalstelle Genauigkeit float(1.6) float(1.5) float(-1.6) float(-1.5) Verwendung von PHP_ROUND_HALF_ODD mit 1 Dezimalstelle Genauigkeit float(1.5) float(1.5) float(-1.5) float(-1.5)
| Version | Beschreibung |
|---|---|
| 5.3.0 |
Der Parameter mode wurde hinzugefügt.
|
| 5.2.7 | Die interne Funktionsweise von round() wurde angepasst, um dem C99 Standard zu entsprechen. |