Java: Formatando um Valor Numerico

From Wiki
Revision as of 22:16, 28 February 2008 by Ebasso (talk | contribs) (New page: Solução pra um problema comum em foruns Java. <code java5> package testes; import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; import ja...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Solução pra um problema comum em foruns Java.

package testes;

import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; import java.util.Locale;

public class FormataValor {

public static void main(String[] args) { System.out.println(formataValor(".03")); System.out.println(formataValor("0.03")); System.out.println(formataValor("003")); System.out.println(formataValor("30000.00")); System.out.println(formataValor("3000000")); }

public static String formataValor(String valor){

BigDecimal bd = new BigDecimal(valor);

       bd.setScale(8,BigDecimal.ROUND_HALF_UP);
      
       String pattern = "###,###,##0.00";
       
       Locale locale=new Locale("pt","BR");
      
       DecimalFormatSymbols symbols=new DecimalFormatSymbols(locale);
       symbols.setDecimalSeparator(',');
       symbols.setGroupingSeparator('.');
       DecimalFormat f=new DecimalFormat(pattern,symbols);
      
       return f.format(bd);
   }

}

O resultado é:

0,03
0,03
3,00
30.000,00
3.000.000,00