lun 06 febbraio 2012

Formattare un numero per l’output con PHP

Posted by Modify On settembre - 2 - 2010

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 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 (), 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 . 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:

  1. Tipi di dati ORACLE Tipi di dati ORACLE Le tabelle sono oggetti logici che consentono la memorizzazione di dati...
  2. SQL Server – Resettare il valore di una colonna IDENTITY SQL Server - Resettare il valore di una colonan IDENTITY...

Leave a Reply

L’80° anniversario della Nascita di Francois Truffaut nel logo google di oggi

E’ per celebrare il regista francese  François Truffaut il Doodle di oggi. Ricorre infatti l’anniversario della sua nascita avvenuta il [...]

Creare un modulo in Joomla 1.7

Disponibile un nuovo articolo per Mr Webmaster. I moduli sono tasselli importantissimi nella creazione di un sito web Joomla e [...]

Rendimenti Adsense in Calo nel 2012

Il primo mese di questo nuovo anno è ormai terminato ed è tempo dei primi bilanci. La crisi economico/finanziaria  che [...]

Stili, override e layout alternativi in Joomla 1.7

Disponibile un nuovo articolo per Mr Webmaster. L’articolo ”Stili, override e layout alternativi in Joomla 1.7″  è una guida alla personalizzazione del [...]