(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.
val
Der zu rundende Wert.
precision
Auf 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
.
mode
Eine 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. |