Java: Formatando um Valor Numerico: Difference between revisions

From Wiki
(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...)
 
mNo edit summary
Line 1: Line 1:
Solução pra um problema comum em foruns Java.
Solução pra um problema comum em foruns Java.


<code java5>
package testes;


import java.math.BigDecimal;
package testes;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.math.BigDecimal;
import java.util.Locale;
import java.text.DecimalFormat;
 
import java.text.DecimalFormatSymbols;
public class FormataValor {
import java.util.Locale;
 
public static void main(String[] args) {
public class FormataValor {
System.out.println(formataValor(".03"));
System.out.println(formataValor("0.03"));
public static void main(String[] args) {
System.out.println(formataValor("003"));
System.out.println(formataValor(".03"));
System.out.println(formataValor("30000.00"));
System.out.println(formataValor("0.03"));
System.out.println(formataValor("3000000"));
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);
public static String formataValor(String valor){
        bd.setScale(8,BigDecimal.ROUND_HALF_UP);
     
BigDecimal bd = new BigDecimal(valor);
                bd.setScale(8,BigDecimal.ROUND_HALF_UP);
        
        
        String pattern = "###,###,##0.00";
                String pattern = "###,###,##0.00";
       
       
        Locale locale=new Locale("pt","BR");
                Locale locale=new Locale("pt","BR");
        
        
        DecimalFormatSymbols symbols=new DecimalFormatSymbols(locale);
                DecimalFormatSymbols symbols=new DecimalFormatSymbols(locale);
        symbols.setDecimalSeparator(',');
                symbols.setDecimalSeparator(',');
        symbols.setGroupingSeparator('.');
                symbols.setGroupingSeparator('.');
        DecimalFormat f=new DecimalFormat(pattern,symbols);
                DecimalFormat f=new DecimalFormat(pattern,symbols);
        
        
        return f.format(bd);
                return f.format(bd);
    }
        }
}
}
</code>
 


O resultado é:
O resultado é:

Revision as of 15:43, 11 June 2008

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