o problema e o seguinte estou usando o Decimal Formate para definir que use 2 casas decimais em valores do tipo float
DecimalFormat dec = new DecimalFormat("0.00");
porem quando difito os dados ele me retorno o valor em um JTextField com virgula, o que acontece o travamento do software quando tenta inserir esse valor no banco, ou seja o banco recebe float, e não “0,00” uma string sei la…,
detalhe todos os valores para efetuar o calculo é passado com PONTO.
Nas configurações regionais do Windows, é indicado qual será o separador decimal padrão. O padrão brasileiro é a vírgula, enquanto o ponto serve para os milhares. Tu pode alterar por lá.
O replace serve para substituir um trecho da String por outro.
//aqui é sua mascara
DecimalFormat dec = new DecimalFormat("###,###,##0.00");
//uma variavel com um valor qualquer
double a = 8.54698;
//aqui imprimindo no console a variavel a com formato definido na mascara
System.out.println(dec.format(a));
//aqui é sua mascara
DecimalFormat dec = new DecimalFormat("###,###,##0.00");
//uma variavel com um valor qualquer
double a = 8.54698;
//aqui imprimindo no console a variavel a com formato definido na mascara
System.out.println(dec.format(a));
sairá isso no console: 8,55
[/quote]
nao deu certo aqui essa mescara companheiro vou tentar as configuraçoes regionais do windows
Da pra importar ate a alma dessa classe e mesmo assim da erro de tipo, será que nao ha algo de anormal nesse codigo? ja tentei configurações do windows de alterar “,” para “.” e nada, e tambem fiz testes inserindo os dados manualmente com pontos e Retorno rsrsrs JOptionPane…“DADOS INSERIDOS COM SUCESSO”,
Isso acontece por causa do Locale padrão do sistema operacional. No caso, como é pt-BR, o separador de casas decimais é a vírgula. Logo, ao chamar o método format, isso acontece. Se você precisar fazer contas com um valor formatado anteriormente, creio que a solução mais simples seja um replace para a casa decimal e um replaceAll para os separadores de milhar.
[quote=marcobiscaro2112]Não precisava mudar o Locale do Windows. Bastava mudar o locale da aplicação. Inclua isso no início do programa:
Locale.setDefault(Locale.US);
E pronto![/quote]
valeu marco, pensei mesmo no fato que… imagina ter que configurar as maquinas onde fosse rodar o sistema, que tipo de software é esse que só funciona em maquina de gringo rsrs, coloquei no main() o trecho e acima e …
JOptionPane…DADOS INSERIDOS COM SUCESSO, valeu e abraço.