Eu já li vários tópicos e vários artigos sobre isso, mas ainda estou com um problema.
Os números são gravados no MySQL com PONTO decimal, quandou vou exibí-los na tela após uma consulta utilizo o DecimalFormat para fazê-los aparecer com VIRGULA decimal, até aí, tudo bem, fazendo assim:
private DecimalFormat df = new DecimalFormat("0.00"); //mesmo estando com . na exibição aparece ,
jT6101.setText(String.valueOf(df.format(rs.getFloat("6101GN")*1.055056)));
O meu problema é que o valor desse textfield pode ser editado pelo usuário e o usuário irá gravar o valor no BD.
Como o valor está sendo exibido com VIRGULA decimal, o usuário irá digitá-lo também com vírgula, mas para gravar no BD eu preciso mudar isso pra PONTO.
A dúvida é: Como eu mudo o número novamente para o formato de PONTO decimal para que eu consiga gravar no BD?
resultado = access.transmite("update tabela set 6101GN = "+Float.parseFloat(jT6101.getText())+" where dia = '"+hoje+"';");
Eu estou desconfiado que a configuração de . e , decimal do Windows está atrapalhando isso, pois mesmo a máscara no DecimalFormat sendo 0.00 , quando aparece o número na tela é mostrado 0,00.
Agradeço a atenção.
vou te ajudar, mas n se acostume muito com ajuda de código pronto
private static final NumberFormat nf = NumberFormat.getCurrencyInstance(BRASIL);
private static final Locale BRASIL = new Locale ("pt", "BR");
//Coloca virgula
public static String formatMoeda(Double d){
return nf.format (d);
}
//tira a virgula
public static Double formatToDouble(String s){
try {
return (nf.parse (s)).doubleValue();
} catch (ParseException e) {
e.printStackTrace();
}
}
import java.text.DecimalFormat;
import java.text.ParseException;
import java.util.Currency;
import java.util.Locale;
public class Teste
{
public static void main(String[] args) throws ParseException
{
DecimalFormat formater = new DecimalFormat("#.00");
formater.setCurrency(Currency.getInstance(new Locale("pt", "BR")));
System.out.println(formater.format(10d)); // vai imprimir 10,00
System.out.println(formater.parse("15,20")); // vai imprimir 15.2
}
}

Muito obrigado a todo pela ajuda, prometo que vou estudar as sugestões todas e encontrar a melhor e mais profissional forma de lidar com isso, mas por enquanto a solução do sf.marcius me permite usar isso: formater.parse(jT6101.getText()) para obter os valores dos textfields e conseguir gravá-los com . decimal.
Já me salvou o pescoço por hoje, obrigado.
Amanhã estudarei a melhor alternativa para se tornar meu padrão de uso nas próximas telas.
Abraços
[quote=Reciclante]Muito obrigado a todo pela ajuda, prometo que vou estudar as sugestões todas e encontrar a melhor e mais profissional forma de lidar com isso, mas por enquanto a solução do sf.marcius me permite usar isso: formater.parse(jT6101.getText()) para obter os valores dos textfields e conseguir gravá-los com . decimal.
Já me salvou o pescoço por hoje, obrigado.
Amanhã estudarei a melhor alternativa para se tornar meu padrão de uso nas próximas telas.
Abraços[/quote]
tava olhando…
na verdade, eu e o colega cabelograff tivemos a mesma idéia…
fazer
formater.parse(jT6101.getText())
tem o mesmo efeito que fazer
formatToDouble(jT6101.getText())
eu tava editando o codigo qdo ele foi mais rápido no gatilho e postou antes, hehe 
a única diferença é que ele criou uma estrutura especializada para fazer isso.
logo, se vc faz uso frequente desses comandos, a solução do colega é mais prática 
[]s
Descobri uma coisa, usar: formater.parse(jT6101.getText()) não me gera um float ou um double.
vai me resultar um Number e não posso fazer multiplicação ou divisão com ele antes de gravar no BD.
É isso mesmo?
Se gera um Number, você deve transformar esse valor em um double (fazendo um cast), por exemplo, antes de fazer contas:
double valor = (double) formater.parse(jT6101.getText());
Acho que isso ajuda.
[quote=marcobiscaro2112]Se gera um Number, você deve transformar esse valor em um double (fazendo um cast), por exemplo, antes de fazer contas:
double valor = (double) formater.parse(jT6101.getText());
Acho que isso ajuda.[/quote]
Não sei por qual motivo, mas não funcionou isso, eu estou pegando o texto do textfield formatando com . decimal gerando um number, convertendo pra String e depois convertendo pra float para depois dividir pelo número que preciso, tudo isso na linha do update pro BD, funcionou, mas tá dando vergonha o tamanho da linha.
Float.parseFloat(String.valueOf(formater.parse(jT6606.getText())))/1.055056
Por hoje funcionou, amanhã eu estudo uma solução limpa.
Obrigado.