Nell’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:
1 | $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:
1 | $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:
1 | $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:
1 | $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:
1 | $valore = sprintf("%06d", $numeroDaFillare); |
Articoli che potrebbero interessarti:
- Tipi di dati ORACLE Tipi di dati ORACLE Le tabelle sono oggetti logici che consentono la memorizzazione di dati...
- SQL Server – Resettare il valore di una colonna IDENTITY SQL Server - Resettare il valore di una colonan IDENTITY...

