round

(PHP 4, PHP 5, PHP 7, PHP 8)

roundArrotonda un float

Descrizione

round(float $val, int $precision = 0, int $mode = PHP_ROUND_HALF_UP): 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).

Elenco dei parametri

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.

Valori restituiti

Il valore arrotondato alla precision data come float.

Esempi

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)

Vedere anche:

  • ceil() - arrotonda le frazioni all'intero superiore
  • floor() - Arrotonda le frazioni all'intero inferiore
  • number_format() - Formatta un numero con i gruppi delle migliaia