(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)