(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).
val
Il valore da arrotondare.
precision
Il 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.
mode
Utilizzare 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)