(PHP 4, PHP 5, PHP 7, PHP 8)
round — Rundet einen Gleitkommawert
Rundet den Parameter num 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.
numDer zu rundende Wert.
precisionAuf wie viele Nachkommastellen gerundet werden soll.
Ist die Genauigkeit precision positiv, wird
num auf precision
signifikante Stellen nach dem Dezimalpunkt gerundet.
Ist die Genauigkeit precision negativ, wird
num auf precision
signifikante Stellen vor dem Dezimalpunkt gerundet, d. h. auf das
nächste Vielfache von pow(10, -precision), z. B.
wird num mit einer
precision von -1 auf Zehner gerundet, mit einer
precision von -2 auf Hunderter usw.
modeEine der folgenden Konstanten kann verwendet werden, um den Rundungsmodus festzulegen.
| Konstanten | Beschreibung |
|---|---|
PHP_ROUND_HALF_UP |
Rundet num auf halber Strecke von Null weg,
womit 1.5 zu 2 wird und -1.5 zu -2.
|
PHP_ROUND_HALF_DOWN |
Rundet num auf halber Strecke zu Null hin,
womit 1.5 zu 1 wird und -1.5 zu -1.
|
PHP_ROUND_HALF_EVEN |
Rundet num auf halber Strecke auf den
nächsten geraden Wert, womit sowohl 1.5 als auch 2.5 zu 2 werden.
|
PHP_ROUND_HALF_ODD |
Rundet num auf halber Strecke auf den
nächsten ungeraden Wert, womit 1.5 zu 1 wird und 2.5 zu 3.
|
Der auf die angegebene precision gerundete Wert als
Float.
| Version | Beschreibung |
|---|---|
| 8.0.0 |
num akzeptiert keine internen Objekte mehr, die
eine numerische Konvertierung unterstützen.
|
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(5.045, 2));
var_dump(round(5.055, 2));
var_dump(round(345, -2));
var_dump(round(345, -3));
var_dump(round(678, -2));
var_dump(round(678, -3));
?>Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
float(3) float(4) float(4) float(4) float(5.05) float(5.06) float(300) float(0) float(700) float(1000)
Beispiel #2 Wie precision eine Gleitkommazahl betrifft
<?php
$number = 135.79;
var_dump(round($number, 3));
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));
?>Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
float(135.79) float(135.79) float(135.8) float(136) float(140) float(100) 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 PHP_EOL;
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 Beispiele für mode mit precision
<?php
echo 'Verwendung von PHP_ROUND_HALF_UP mit einer Dezimalstelle Genauigkeit' . PHP_EOL;
var_dump(round( 1.55, 1, PHP_ROUND_HALF_UP));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_UP));
echo PHP_EOL;
echo 'Verwendung von PHP_ROUND_HALF_DOWN mit einer Dezimalstelle Genauigkeit' . PHP_EOL;
var_dump(round( 1.55, 1, PHP_ROUND_HALF_DOWN));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_DOWN));
echo PHP_EOL;
echo 'Verwendung von PHP_ROUND_HALF_EVEN mit einer Dezimalstelle Genauigkeit' . PHP_EOL;
var_dump(round( 1.55, 1, PHP_ROUND_HALF_EVEN));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_EVEN));
echo PHP_EOL;
echo 'Verwendung von PHP_ROUND_HALF_ODD mit einer Dezimalstelle Genauigkeit' . PHP_EOL;
var_dump(round( 1.55, 1, PHP_ROUND_HALF_ODD));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_ODD));
?>Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Verwendung von PHP_ROUND_HALF_UP mit einer Dezimalstelle Genauigkeit float(1.6) float(-1.6) Verwendung von PHP_ROUND_HALF_DOWN mit einer Dezimalstelle Genauigkeit float(1.5) float(-1.5) Verwendung von PHP_ROUND_HALF_EVEN mit einer Dezimalstelle Genauigkeit float(1.6) float(-1.6) Verwendung von PHP_ROUND_HALF_ODD mit einer Dezimalstelle Genauigkeit float(1.5) float(-1.5)