Formattare un numero per l’output con PHP

PHPNell’elaborazione di tabulati si ha spesso necessità di formattare correttamente i numeri. I problemi che spesso si pongono sono i seguenti:

– troncare i decimali
– usare il divisore italiano virgola per separare i decimali
– usare il divisore italiano punto per dividere le migliaia
– aggiungere degli zeri in testa (fillare a zero a sinistra)


Per eseguire tutte queste operazioni ci vengono in aiuto due funzioni php, la number_format e la sprintf.

Troncare i decimali
Per troncare i decimali é sufficiente passare come secondo parametro della funzione number_format il numero di decimali a cui troncare, così questo esempio tronca al secondo decimale, restituendo 1,234.57, in quanto effettua anche l’arrotondamento:

$valore = number_format(1234.5678, 2);

Nel caso si voglia troncare senza effettuare l’arrotondamento occorre usare oportunamente la funzione floor(), moltiplicando (ad esempio per 100 se si vogliono due decimali) e dividendo per lo stesso valore, ad esempio:

$valore = floor((1234.5678) * 100) * .01;

E’ chiaro che a sua volta il risultato può essere passato alla number_format().

Usare il divisore italiano virgola per separare i decimali e il divisore punto per le migliaia
Per Usare il divisore italiano virgola per separare i decimali e il divisore punto per le migliaia é sufficiente passare come terzo parametro della funzione number_format il carattere separatore dei decimali (in italiano la virgola) e come quarto parametro il separatore delle migliaia (in italiano il punto). Così questo esempio tronca al secondo decimale e formatta in italiano, restituendo 1.234,57:

$valore = number_format(1234.5678, 2, ',', '.');

Chiaramente se non si vuole che venga presentato il divisore delle migliaia é sufficiente togliere il carattere tra gli apici del quarto parametro:

$valore = number_format(1234.5678, 2, ',', '');

Aggiungere zeri in testa ad un numero (fillare a zero a sinistra)
Per aggiungere degli zeri in testa ad un numero e quindi fillarlo a zero a sinistra possiamo utilizzare la funzione sprintf. Se, ad esempio, vogliamo avere numeri tutti di 6 cifre fillati con zeri in testa, possiamo fare:

$valore = sprintf("%06d", $numeroDaFillare);



About Mauro De Filippis 2423 Articles
Laureato in Ingegneria Informatica nel 2008 presso l'Università degli Studi di Lecce con una tesi in Processi di Produzione Robotizzati dal titolo "Integrazione delle tecniche di progettazione del ciclo di lavorazione con programmazione della produzione”. Le mie attività principali sono : sviluppo di applicativi ANSI C per terminali POS basati su processori ARM Risc 32Bit con 2-4 MB di Ram (progettazione, sviluppo e test delle applicazioni ) sviluppo in ambiente .NET sviluppo Web in ambiente PHP, ASP Installazione, progettazione, utilizzo di Db MS SQL Server, Mysql, Acces , Oracle Da anni mi occupo di CMS Open Source, in particolare di Joomla e Wordpress. Mia è la Guida Wordpress 3.5, la Guida Joomla 2.5 , il Corso online Joomla! 2.5 ed il Corso online Wordpress Mi occupo anche di LMS in particolare di Moodle e Docebo. Google+ by Mauro De Filippis

Be the first to comment

Leave a Reply

L'indirizzo email non sarà pubblicato.


*