round

(PHP 4, PHP 5, PHP 7)

roundRundet einen Fließkommawert

Beschreibung

round ( float $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.

Parameter-Liste

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.

Rückgabewerte

Der auf die angegebene precision gerundete Wert als float.

Beispiele

Beispiel #1 round()-Beispiele

<?php
var_dump
(round(3.4));
var_dump(round(3.5));
var_dump(round(3.6));
var_dump(round(3.60));
var_dump(round(1.955832));
var_dump(round(1241757, -3));
var_dump(round(5.0452));
var_dump(round(5.0552));
?>

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($number2));
var_dump(round($number1));
var_dump(round($number0));
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.50PHP_ROUND_HALF_UP));
var_dump(round(9.50PHP_ROUND_HALF_DOWN));
var_dump(round(9.50PHP_ROUND_HALF_EVEN));
var_dump(round(9.50PHP_ROUND_HALF_ODD));

echo 
'Rundundsmodi mit 8.5' PHP_EOL;
var_dump(round(8.50PHP_ROUND_HALF_UP));
var_dump(round(8.50PHP_ROUND_HALF_DOWN));
var_dump(round(8.50PHP_ROUND_HALF_EVEN));
var_dump(round(8.50PHP_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_dump1.551PHP_ROUND_HALF_UP));
var_dump1.541PHP_ROUND_HALF_UP));
var_dump(-1.551PHP_ROUND_HALF_UP));
var_dump(-1.541PHP_ROUND_HALF_UP));

echo 
PHP_EOL;
echo 
'Verwendung von PHP_ROUND_HALF_DOWN mit 1 Dezimalstelle Genauigkeit' PHP_EOL;
var_dump1.551PHP_ROUND_HALF_DOWN));
var_dump1.541PHP_ROUND_HALF_DOWN));
var_dump(-1.551PHP_ROUND_HALF_DOWN));
var_dump(-1.541PHP_ROUND_HALF_DOWN));

echo 
PHP_EOL;
echo 
'Verwendung von PHP_ROUND_HALF_EVEN mit 1 Dezimalstelle Genauigkeit' PHP_EOL;
var_dump1.551PHP_ROUND_HALF_EVEN));
var_dump1.541PHP_ROUND_HALF_EVEN));
var_dump(-1.551PHP_ROUND_HALF_EVEN));
var_dump(-1.541PHP_ROUND_HALF_EVEN));

echo 
PHP_EOL;
echo 
'Verwendung von PHP_ROUND_HALF_ODD mit 1 Dezimalstelle Genauigkeit' PHP_EOL;
var_dump1.551PHP_ROUND_HALF_ODD));
var_dump1.541PHP_ROUND_HALF_ODD));
var_dump(-1.551PHP_ROUND_HALF_ODD));
var_dump(-1.541PHP_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)

Changelog

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.

Siehe auch