Para o codigo:
System.out.println(NumberFormat.getCurrencyInstance().format(2345));
Temos uma saida no console dessa maneira:
R$ 2.345,00
Como eu poderia tirar o R$?
Grato.
Para o codigo:
System.out.println(NumberFormat.getCurrencyInstance().format(2345));
Temos uma saida no console dessa maneira:
R$ 2.345,00
Como eu poderia tirar o R$?
Grato.
[quote=Johnnny8]Para o codigo:
System.out.println(NumberFormat.getCurrencyInstance().format(2345));
Temos uma saida no console dessa maneira:
R$ 2.345,00
Como eu poderia tirar o R$?
Grato.[/quote]
o método getCurrencyInstance é referenciado a moeda local.
Você poderia usar o DecimalFormat.
por exemplo:
DecimalFormat df = new DecimalFormat();
df.applyPattern("#,##0.00");
Espero ter ajudado.
Artur Martini
Se não quer o R$ por que está usando o NumberFormat.getCurrencyInstance() ?
Use NumberFormat.getInstance() ou DecimalFormat.
Qual dos dois é mais aconselhavel?
[quote]
“#,##0.00”[/quote]
Poderia me explicar esses caracteres?
Grato.
0 = é um dígito de 0 até 9. Ele nunca some.
, = é um separador de milhar (em inglês é uma vírgula e em português um ponto)
. = é um ponto ou vírgula decimal (em inglês é um ponto e em português uma vírgula)
Tome cuidado!!! nunca confunda, em especificação de máscaras de formatação, o “,” com o “.”.
Para lhe ajudar, sempre pense que o Java foi desenvolvido por americanos, e para eles o separador de milhar é uma vírgula, não um ponto. Mas quando o número é impresso, ele fica certinho depois. Não faça a correção “antes” (ou seja, especificando incorretamente “#.###,##”) que vai dar totalmente errado.
NumberFormat.getCurrencyInstance etc. são formatos “enlatados” e que já respeitam a linguagem do sistema em que o Java está rodando.
DecimalFormat permite você especificar o formato exatamente como você quer.
você pode da um:
variavelString.replaceAll("R$", "");
//o java irá substituir o R$ por um espaço vazio.
E quando eu for pegar um numero que veio de uma String e querer formatar essa string durante a execução?
Ex: Estou fazendo a formatação dos números de uma calculadora. Existe um método que se chama numberTyped() que tem como objetivo concatenar todos os numeros do textfield. Esse metodo trabalha apenas com a String de retorno do textfield. Como eu posso fazer esse método numberTyped() formatar os numeros do textField como uma String?
private void numberTyped(String n) {
num = jTextField1.getText();
num += n; //<=Quero formatar a String num para aparecer como "#,##0.00". Como faço isso?
jTextField1.setText(num);
}
Resumindo: Fazer o textField formatar a saida sempre assim: aaa.bbb.ccc.ddd ou aa.bbb.ccc ou a.bcd e etc…