EditText trazendo valor diferente do Banco de Dados

03/01/2017

0

Criei um aplicativo mobile para Android de Recursos Humanos com todas as funcionalidades, incluir, alterar, deletar, calcular, pesquisar, usando o Banco de Dados SQLite e estou com um problema quando busco a informação no banco de dados o VALOR CARREGADO É DIFERENTE do valor que está na tabela do B.D.
No campo salário da tabela do B.D o valor é de 77977.77 e quando utilizo o campo EditText (abaixo) para trazer o valor é informado 77977.8
Esse problema ocorre somente com valores a partir de 10.000,00 e não tem nenhum problema com valores até 9.999,99
Eu já chequei o Banco de dados e o campo informado está como NUMERIC(12,2)

editText_CON_SalarioContratual.setText(c.getString(20));


Alguém poderia me ajudar com essa questão?

Eu também fiz algumas formatações para tentar sanar esse problema, mas ocorreram erros.
Vejam algumas formatações que fiz sem sucesso:

editText_CON_SalarioContratual.setText(c.getString(20).format("%.2f").replace(",", "."));
Erro: Caused by: java.util.MissingFormatArgumentException: Format specifier: .2f

editText_CON_SalarioContratual.setText(String.format("%.2f",c.getString(20).replace(",", ".")));
Erro: Caused by: java.util.IllegalFormatConversionException: %f can't format java.lang.String arguments

editText_CON_SalarioContratual.setText((CharSequence) new BigDecimal(c.getDouble(c.getColumnIndex("CON_SalarioContratual"))));
ERRO: Caused by: java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.CharSequence

editText_CON_SalarioContratual.setText((CharSequence) BigDecimal.valueOf(Double.parseDouble(c.getString(20))));
ERRO: Caused by: java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.CharSequence

Você consegue me ajudar com a formatação?
Como os valores desse aplicativo são precisos, gostaria de arredondar utilizando BigDecimal.
Edilson Ricci

Edilson Ricci

Responder

Posts

03/01/2017

Jones Granatyr

Olá! Já tentou usar alguma função para arredondamento dos valores? Outra alternativa é usar alguma função de arredondamento no próprio BD também
Responder

03/01/2017

Edilson Ricci

Eu usei 04 tipos de arredondamento no código, mas o JAVA não suporta e dá erro conforme citei.
No Banco de Dados, o campo está como NUMERIC(12,2) e quando minha aplicação faz o cálculo existe um arredondamento do valor calculo antes de gravar no B.D, no campo do B.D não aparecem diversas casas decimais, aparece o valor com 02 casas decimais.
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar