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