[RESOLVIDO] NumberFormat - DecimalFormat

3 respostas
ricardo.narezi

Fala ae galera…

estou com um problema de formatação de números aqui.

Double valNotaFiscal = new Double(pesquisaEdicao.getDcValorNotaFiscal());
Double valorDiferenca =	(valNotaFiscal - pesquisaEdicao.getVlApurado());
NumberFormat nf = new DecimalFormat("0.00");  
nf.format(valorDiferenca);

o código acima pega a String pesquisaEdicao.getDcValorNotaFiscal() e joga em uma variável Double
Depois disso faço uma operação de subtração.

Ele está me retornando o resultado como 879.6200000000026 mesmo eu formatando o número.

Alguém sabe como resolver isso?

obrigado

3 Respostas

cristian_clever

Pelo que entendi vc quer duas casas decimais, se for isso:

Double valNotaFiscal = new Double(10); Double valorDiferenca = (5.5613); NumberFormat nf = new DecimalFormat("#.##"); System.out.println(nf.format(valorDiferenca));

Dê uma olhada na documentação da classe NumberFormat, vc tem os “Patterns” que podem ser utilizados, epoderá verificar qual o que melhor se adequa a sua necessidade.

[]s

wbdsjunior

desculpe-me se estiver enganado, mas acho que você você não entendeu o que o DecimalFormat faz.

ele não trunca um double, ele retorna uma String com o valor do double no formato desejado.

import java.text.*;

public class Test {
    public static void main(String[] args) {
        Double valor = 0.006d;
        NumberFormat numberFormat = new DecimalFormat("0.00");
        String valorFormatado = numberFormat.format(valor);
        System.out.println(valor);
        System.out.println(valorFormatado);
    }
}
ricardo.narezi

obrigado wbdsjunior

Vc tem razão, ele formata e retorna uma String formatada.

obrigado

Criado 24 de setembro de 2009
Ultima resposta 25 de set. de 2009
Respostas 3
Participantes 3