Pillole di php – Arrotondare un numero
Molto spesso capita di dover arrotondare dei numeri e ci si pone il problema su quali siano i modi migliori (e le funzioni) per farlo. Ecco allora che vi rpesento un excursus sulle funzioni di arrotondamento di un numero in php.
Mettiamo di avere il numero 145,7352. Analizzando il numero per prima cosa notiamo che è un numero in notazione italiana ovvero con la , in php la notazione è quella inglese ovvero col punto al posto della virgola quindi sarà da scrivere come 145.7352.
$num = 145.7352;
A questo punto iniziamo con i vari tipi di arrotondamento:
Arrotondamento per eccesso ad un intero
echo ceil($num); // il risultato sarà 146, ovvero l’intero successivo
Arrotondamento per difetto ad un intero
echo floor($num); // il risultato sarà 145, ovvero l’intero senza la parte dopo la virgola
Arrodontamento al numero intero più vicino
echo round($num); // il risultato sarà 146, ovvero l’intero successivo essendo la parte decimale (.7352) più vicina al 146 che al 145
Arrotondamento al numero decimale più vicino con due sole cifre decimali
echo number_format($num, 2, ‘,’, ”); // il risultato sarà 145.74 essendo .7352 più vicino al .74 che al .73. Il primo parametro da fornire alla funzione è il numero, il secondo le cifre decimali che si vogliono nell’arrotondamento finale, il terzo è il carattere separatore per i decimali ed il quarto per le migliaia (nel nostro caso è vuoto)
Questi sono i metodi principali, ne esistono altri meno utilizzati ma sempre validi e sono i seguenti:
Arrotondamento ad intero per difetto
echo sprintf(“%d”, $num); // il risultato sarà 145. Il parametro %d indica che la conversione del numero in input, di qualsiasi tipo sia verrà effettuata verso un intero (in questo caso come nei precedenti con segno positivo o negativo a seconda del numero inserito)
Arrotondamento al numero decimale più vicino con 2 sole cifre decimali
echo sprintf(“%.2f”, $num); // il risultato sarà 145.74. Il primo parametro è composto da %f che indica la conversione in numero decimale mentre il “.2” posizionato al centro indica di prendere solo 2 cifre dopo la virgola. L’arrotondamento avviene in automatico. sostituendo “F” ad “f” si può avere una versiona localizzata (a seconda di come è stato impostato il server se con notazione inglese, italiana, francese, etc etc) ma raramente ho visto Apache settati con altri standard numeri che non fossero quelli inglesi
Buon arrotondamento a tutti! 😉
Pillole di php - Arrotondare un numero,Category: Informatica