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

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…

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

abrs

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

abrs [/quote]

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 ?

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

#,###

para 4 casas

#,####

Veja se funciona…!!

Consegui… Acabei usando outra forma:

[code]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;

}[/code]

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

[code]
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);[/code]