Formatar valores

8 respostas
rebinho

Olá galera tudo bem?

Estou começando em Java (no forum tb) e estou tentando fazer alguns formatos (mascaras) em valores.

Por exemplo caso o usuário digite 1000 mostre 1.000… Caso digite 1000 mostre 1000.0 enfim, coisas do tipo.

Pesquisando consegui fazer de duas formas:

Essa mudei o valor onde esta o 2 coloquei até 1000 e diabo nenhum acontece!  :?

import java.text.NumberFormat;

NumberFormat testando;

testando = NumberFormat.getCurrencyInstance();

testando.setMaximumFractionDigits(2);

System.out.println(testando.format(variavel));
e dessa forma:

Nesse caso achei bemmm melhor de se usar/fazer porem quando coloco ("###,#") da merda!  <img src="https://cdn.jsdelivr.net/gh/twitter/twemoji@14/assets/72x72/c.pngry.png?v=9" title=":cry:" class="emoji" alt=":cry:">

import java.text.DecimalFormat;

import java.text.NumberFormat;

NumberFormat formatter = new DecimalFormat("#,###");

System.out.println(formatter.format(variavel));

Tem alguma forma que possa formatar como quizer? Colocar virgula ou ponto onde desejar?

Valeu abraço!

8 Respostas

L

bom eu faço dessa maneira

lblPremio.setText("Prêmio");
		txtPremio.setDocument(new JTextFieldFilter(JTextFieldFilter.DECIMAL + JTextFieldFilter.NUMERIC,15));
		final JFormattedTextField txtPremio  = new JFormattedTextField(new DecimalFormat("#,###,##0.00"));  		
		txtPremio.setName("Prêmio");
dudu_sps

uma boa maneira de resolver isso… seria implementar uma classe que extends PlainDocument

aonde tem os metodos

public void insertString(int offs, String str, AttributeSet a)

public void remove(int offset, int length)

e voce manipula a entrada de dados no campo

rebinho
lokit"s:
bom eu faço dessa maneira
lblPremio.setText("Prêmio");
		txtPremio.setDocument(new JTextFieldFilter(JTextFieldFilter.DECIMAL + JTextFieldFilter.NUMERIC,15));
		final JFormattedTextField txtPremio  = new JFormattedTextField(new DecimalFormat("#,###,##0.00"));  		
		txtPremio.setName("Prêmio");

lokit"s
Então brother, problema é que nem estou usando TextField nem nada rsrs
Tipo to começando agorinha em Java, ai to tentando ver aplicar o pouco de conhecimento que tenho em C no Java
Ai agora to treinando programação estruturada, pra depois começar com OO.

Mais muito obrigado pela dica mano.
Quando começar com OO já vou estar sabendo! :wink:

Abraço!

rebinho

dudu_sps:
uma boa maneira de resolver isso… seria implementar uma classe que extends PlainDocument

aonde tem os metodos

public void insertString(int offs, String str, AttributeSet a)

public void remove(int offset, int length)

e voce manipula a entrada de dados no campo


Valeu cara, mais de forma estruturada acho que tb ñ dá!
A por favor não querendo abusar mais… Estou dando uma boa estudada na parte estruturada e tal.
Como conheço um pouco de C to achando bem tranquilo até agora.
Sabem me dizer oque é mais importante saber antes de começar a programar OO?
Tipo já entendo coisas básicas, como condição, laço, matriz e agora to aprendendo procedimento…
Preciso saber muito mais coisas pra partir pra OO? :slight_smile:

Valeu pela ajuda, abraço!

L

Me explica melhor o que quer fazer!

achu que naum entendi muito bem

veja se é isso então

NumberFormat.getNumberInstance()   
NumberFormat.getCurrencyInstance()   
NumberFormat.getPercentInstance()   
  
  
double x = 10000.0 / 3.0;   
        NumberFormat formatter = NumberFormat.getNumberInstance();   
        String s = formatter.format(x); // the string "3,333.33"   
        System.out.println(s);

veja

[url]http://download.oracle.com/javase/1.4.2/docs/api/java/text/DecimalFormat.html[/url]

dudu_sps

voce ja ta trabalhando com swing?

rebinho
lokit"s:
Me explica melhor o que quer fazer!

achu que naum entendi muito bem

veja se é isso então

NumberFormat.getNumberInstance()   
NumberFormat.getCurrencyInstance()   
NumberFormat.getPercentInstance()   
  
  
double x = 10000.0 / 3.0;   
        NumberFormat formatter = NumberFormat.getNumberInstance();   
        String s = formatter.format(x); // the string "3,333.33"   
        System.out.println(s);

veja

[url]http://download.oracle.com/javase/1.4.2/docs/api/java/text/DecimalFormat.html[/url]


Opa é isso sim brother... Só queria saber se tem uma jeito "generico" vamos dizer.
Vamos dizer que queira que um Int x=1000 apareça assim '1.000' ou então assim '1000.0'
Ai queria saber se tem como fazer tipo mascara = ('#.###') ou ('####.#')
Pegar um Double y=1000.0 e mostrar '1.000' ou '1.000,00'...
Pra eu poder fazer a formatação do jeito que achar melhor independente do tipo e valor do dado...
Tem como?

rebinho

Então mano, swing ainda não mexi não.
Meu prof vai começar com swing só depois do carnaval. :?
Por enquanto vi só o basicão mesmo… Só até array.

Criado 1 de março de 2011
Ultima resposta 1 de mar. de 2011
Respostas 8
Participantes 3