round
(PHP 4, PHP 5, PHP 7, PHP 8)
round — Rundet einen Gleitkommawert
Beschreibung
$num, int $precision = 0, int $mode = PHP_ROUND_HALF_UP): float
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.
Parameter-Liste
-
num -
Der zu rundende Wert.
-
precision -
Auf wie viele Nachkommastellen gerundet werden soll.
Ist die Genauigkeit
precisionpositiv, wirdnumaufprecisionsignifikante Stellen nach dem Dezimalpunkt gerundet.Ist die Genauigkeit
precisionnegativ, wirdnumaufprecisionsignifikante Stellen vor dem Dezimalpunkt gerundet, d. h. auf das nächste Vielfache vonpow(10, -precision), z. B. wirdnummit einerprecisionvon -1 auf Zehner gerundet, mit einerprecisionvon -2 auf Hunderter usw. -
mode -
Eine der folgenden Konstanten kann verwendet werden, um den Rundungsmodus festzulegen.
Konstanten Beschreibung PHP_ROUND_HALF_UPRundet numauf halber Strecke von Null weg, womit 1.5 zu 2 wird und -1.5 zu -2.PHP_ROUND_HALF_DOWNRundet numauf halber Strecke zu Null hin, womit 1.5 zu 1 wird und -1.5 zu -1.PHP_ROUND_HALF_EVENRundet numauf halber Strecke auf den nächsten geraden Wert, womit sowohl 1.5 als auch 2.5 zu 2 werden.PHP_ROUND_HALF_ODDRundet numauf halber Strecke auf den nächsten ungeraden Wert, womit 1.5 zu 1 wird und 2.5 zu 3.
Rückgabewerte
Der auf die angegebene precision gerundete Wert als
Float.
Changelog
| Version | Beschreibung |
|---|---|
| 8.0.0 |
num akzeptiert keine internen Objekte mehr, die
eine numerische Konvertierung unterstützen.
|
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.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)
Siehe auch
- ceil() - Rundet Brüche auf
- floor() - Rundet Brüche ab
- number_format() - Formatiert eine Zahl mit Tausender-Trennzeichen

