[Resolvido] Escolher número de casas decimais após a vírgula

5 respostas
jeanmalvessi

Boa tarde,

Tenho um sistema ERP no qual estou tentando colocar a possibilidade de o usuário escolher o número de casas decimais após a vírgula…

Nas configurações do sistema o usuário pode escolher entre 2 e 8 casas…

A questão é: Não estou conseguindo formatar os valores na hora de fazer um pedido, com o número de casas escolhido (tanto visual quanto na hora de salvar)…

Exemplo: Vou fazer um pedido de 25 reais… O valor é setado como 25.00. Se eu escolher 4 casas, deveria salvar como 25.0000

Preciso disso para NF’s de importação!

Alguém pode me dar uma ajuda ?

Obrigado…

5 Respostas

Vini_Fernandes

Cara, pesquise por DecimalFormat aqui mesmo no forum. Tem um montao de posts referentes ao assunto.

abrs

jeanmalvessi

Vini Fernandes:
Cara, pesquise por DecimalFormat aqui mesmo no forum. Tem um montao de posts referentes ao assunto.

abrs

Eu tava vendo antes… Pelo que eu entendi do Decimal Format, eu preciso definir um pattern pra ele…
Posso fazer uma verificação para adicionar x números após a vírgula no pattern (conforme as minhas configurações), mas os valores antes da vírgula podem variar, podem ser 1, 2, 3…

Como eu faço pra lidar com isso ?

Vini_Fernandes

Cara, voce define tudo isso no proprio pattern. Creio que para 3 casas voce pode definir

#,###

para 4 casas

#,####

Veja se funciona…!!

jeanmalvessi

Consegui.. Acabei usando outra forma:

public double formataNumero(Double value) {
        
        int i = objConfig.getQtde_casas_decimais();

        String s = String.format("%." + i + "f", value);
        
        double formatado = textUtil.StringtoMoeda(s);
        
        return formatado;

}
jeanmalvessi

Mas na hora de salvar precisei do Decimal Format também..

NumberFormat nf = NumberFormat.getInstance(new Locale("pt", "BR"));
            Configuracoes config = ConfiguracaoGlobal.getConfiguracaoGlobal();
            
            nf.setMaximumFractionDigits(config.getQtde_casas_decimais());
            nf.setMinimumFractionDigits(config.getQtde_casas_decimais());

            Double valor = (Double.valueOf(valorTela.toString()));
            return nf.format(valor);
Criado 9 de fevereiro de 2012
Ultima resposta 10 de fev. de 2012
Respostas 5
Participantes 2