Conversao de tipos. Estou apanhando demais........Socorro!

Sou novo na linguagem e estou com as seguintes dúvidas:

  1. Tenho um banco de dados onde eu armazeno valores em um campo do tipo decimal. Como faço para pegar o valor que esta em um JTextField e joga-lo em uma variavel do tipo double?

  2. Como eu faria o processo contrario. Receber do banco de dados e jogar no JTextField?

  3. Numa outra ocasião, tenho um JTextField formatado ("###-#), quando gravo no banco de dados, é gravado no formato da mascara, por isso tenho que definir o campo da tabela como String. Gostaria de gravar somente os números, excluindo o “hífen” da mascara. Isso é possível? E se possível, como eu faria no caso contrário, onde eu receberia do BD somente os números e mostraria no JTextField com a mascara de edição.

Muito obrigado e descupem-me pela ignorância sobre o assunto.

eae blz?

1 :arrow: double valor = Double.parseDouble( textField.getText() );

2 :arrow: textField.setText( Double.toString( valor ) );

3 :arrow: quanto a formatação existem algumas API´s que fazem
esse tipo de serviço no qual ele pega o seu valor de um determinado tipo
converte para uma String e essa string ele altera para deixar no formato estabelecido

:wink:

[]´s

1-

DecimalFormatSymbols dfSymbols = new DecimalFormatSymbols (request.getLocale());
DecimalFormat dfValor = new DecimalFormat("##0.0000", dfSymbols);
dfValor.setMaximumFractionDigits(4);
try {
     double variavel = dfValor.parse(variavelStr).doubleValue();
} catch (ParseException e) {}    

No construtor do dfSymbols, deve-ser passar o Locale atual para ele pegar certo o que é ponto e o que é virugla, já que nosso sistema é diferente do americano (No exemplo acima eu peguei através do request, já que isso estava num Servlet :)). No consutrutor de dfValor, passa-se a mascara do valor que será digitado. É meio estranho no começo mas depois que você entende fica fácil.

2- Basta usar um DecimalFormat, assim você consegue mascarar o valor.

 DecimalFormat dfValor = new DecimalFormat("###,###,###,##0.00");
 dfValor.format(variavel);

3- Acho que nessa situação seria necessário criar uma função especifica para tirar o hifen da variavel, através de manipulação de strings mesmo.

Erko, valeu pela força.
Um grande abraço!

[quote=“AnjoSupremo”]eae blz?

1 :arrow: double valor = Double.parseDouble( textField.getText() );

2 :arrow: textField.setText( Double.toString( valor ) );

3 :arrow: quanto a formatação existem algumas API´s que fazem
esse tipo de serviço no qual ele pega o seu valor de um determinado tipo
converte para uma String e essa string ele altera para deixar no formato estabelecido

:wink:

[]´s[/quote]

Bruno, valeu pelo código.
Um grande abraço!

[quote=“brunopalaoro”]1-

DecimalFormatSymbols dfSymbols = new DecimalFormatSymbols (request.getLocale());
DecimalFormat dfValor = new DecimalFormat("##0.0000", dfSymbols);
dfValor.setMaximumFractionDigits(4);
try {
     double variavel = dfValor.parse(variavelStr).doubleValue();
} catch (ParseException e) {}    

No construtor do dfSymbols, deve-ser passar o Locale atual para ele pegar certo o que é ponto e o que é virugla, já que nosso sistema é diferente do americano (No exemplo acima eu peguei através do request, já que isso estava num Servlet :)). No consutrutor de dfValor, passa-se a mascara do valor que será digitado. É meio estranho no começo mas depois que você entende fica fácil.

2- Basta usar um DecimalFormat, assim você consegue mascarar o valor.

 DecimalFormat dfValor = new DecimalFormat("###,###,###,##0.00");
 dfValor.format(variavel);

3- Acho que nessa situação seria necessário criar uma função especifica para tirar o hifen da variavel, através de manipulação de strings mesmo.[/quote]