Formattazione di un numero decimale in Java

Postato da ROb | nella categoria Java, Sviluppo web | martedì, 20 luglio 2010

2

Può capitare di dover modificare i caratteri separatori di decimali e migliaia nella formattazione di un numero in Java.

Questa porzione di codice vi permette di farlo sfruttando alcune classi base di Java:

    		DecimalFormatSymbols symbols = new DecimalFormatSymbols();
    		symbols.setDecimalSeparator('$');
        	symbols.setGroupingSeparator('#');

        	String format = "###,###.###";
        	DecimalFormat formatter = new DecimalFormat(format, symbols);
        	formatter.setGroupingSize(3);

        	String numberString = formatter.format(number);

In questo caso, un pò per gioco, abbiamo impostato il carattere $ come separatore dei decimali e # come separatore delle migliaia.

La classe DecimalFormat formatta il numero sfruttando il pattern specificato in questo “###,###.###”. Il suo costruttore però accetta anche una variabile di tipo DecimalFormatSymbols che può essere inizializzata a partire da uno specifico Locale (avremmo infatti potuto rimpiazzare la chiamata con DecimalFormatSymbols symbols = new DecimalFormatSymbols(new Locale(“it”)); ).

A questo punto la variabile symbols può essere utilizzata per sovrascrivere le impostazioni dell’eventuale Locale utilizzato oppure può essere utilizzato in modo nativo lasciando i separatori di default che, per la lingua italiana, sono tipicamente la “,” come separatore dei decimali e il “.” come raggruppatore della migliaia (non sempre visualizzato).

Commenti inviati (2)

Mi salverò l’articolo che sicuramente mi tornerà utile la prossima volta che dovrò gestire questo tipo di formattazione. :)

Ciao

Sono contento ti sia stato utile… è proprio lo scopo del mio blog.

Ciao ciao.

Scrivi un commento