(PHP 4, PHP 5, PHP 7, PHP 8)
round — Arrotonda un float
Restituisce il valore arrotondato di val con
la precision specificata
(numero di cifre dopo il punto decimale).
precision può anche essere negativa o zero (valore predefinito).
valIl valore da arrotondare.
precisionIl numero facoltativo di cifre decimali a cui arrotondare.
Se la precision è positiva, val viene
arrotondato a precision cifre significative dopo il punto decimale.
Se la precision è negativa, val viene
arrotondato a precision cifre significative prima del punto decimale,
cioè al multiplo più vicino di pow(10, -precision), ad esempio per una
precision di -1 val viene arrotondato a decine,
per una precision di -2 a centinaia, ecc.
modeUtilizzare una delle seguenti costanti per specificare la modalità in cui si verifica l'arrotondamento.
| Costanti | Descrizione |
|---|---|
PHP_ROUND_HALF_UP |
Arrotonda val lontano dallo zero quando è a metà strada,
convertendo 1,5 in 2 e -1,5 in -2.
|
PHP_ROUND_HALF_DOWN |
Arrotonda val verso lo zero quando è a metà strada,
convertendo 1.5 in 1 e -1.5 in -1.
|
PHP_ROUND_HALF_EVEN |
Arrotonda val verso il valore pari più vicino quando è a metà strada,
convertendo 1,5 e 2,5 in 2.
|
PHP_ROUND_HALF_ODD |
Arrotonda val verso il valore dispari più vicino quando è a metà strada,
convertendo 1,5 in 1 e e 2,5 in 3.
|
Il valore arrotondato alla precision data come float.
Example #1 Esempi di round()
<?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));
?>Il precedente esempio visualizzerà:
float(3) float(4) float(4) float(4) float(5.05) float(5.06) float(300) float(0) float(700) float(1000)
Example #2 In che modo precision influenza un float
<?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));
?>Il precedente esempio visualizzerà:
float(135.79) float(135.79) float(135.8) float(136) float(140) float(100) float(0)
Example #3 Esempi di mode
<?php
echo 'Modalità di arrotondamento con 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 'Modalità di arrotondamento con 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));
?>Il precedente esempio visualizzerà:
Modalità di arrotondamento con 9.5 float(10) float(9) float(10) float(9) Modalità di arrotondamento con 8.5 float(9) float(8) float(8) float(9)
Example #4 Esempi di mode con precision
<?php
echo 'Utilizzo di PHP_ROUND_HALF_UP con 1 cifra decimale di precisione' . 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 'Utilizzo di PHP_ROUND_HALF_DOWN con 1 cifra decimale di precisione' . 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 'Utilizzo di PHP_ROUND_HALF_EVEN con 1 cifra decimale di precisione' . 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 'Utilizzo di PHP_ROUND_HALF_ODD con 1 cifra decimale di precisione' . PHP_EOL;
var_dump(round( 1.55, 1, PHP_ROUND_HALF_ODD));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_ODD));
?>Il precedente esempio visualizzerà:
Utilizzo di PHP_ROUND_HALF_UP con 1 cifra decimale di precisione float(1.6) float(-1.6) Utilizzo di PHP_ROUND_HALF_DOWN con 1 cifra decimale di precisione float(1.5) float(-1.5) Utilizzo di PHP_ROUND_HALF_EVEN con 1 cifra decimale di precisione float(1.6) float(-1.6) Utilizzo di PHP_ROUND_HALF_ODD con 1 cifra decimale di precisione float(1.5) float(-1.5)