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
precision
positiv, wirdnum
aufprecision
signifikante Stellen nach dem Dezimalpunkt gerundet.Ist die Genauigkeit
precision
negativ, wirdnum
aufprecision
signifikante Stellen vor dem Dezimalpunkt gerundet, d. h. auf das nächste Vielfache vonpow(10, -precision)
, z. B. wirdnum
mit einerprecision
von -1 auf Zehner gerundet, mit einerprecision
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.
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