Converter número.. Double

5 respostas
arm.jr

Eu tenho o valor 0.001, quanto eu transformo ele Double o valor passa para 0.0010, ou seja acrescenta um zero.

Tem como tirar esse zero?

No DecimalFormat ele retorna String, fica tudo certo, mas depois eu tenho que colocar num Double e acrescenta o zero ficando com valor errado!

Obrigado.

5 Respostas

thegoergen

Mas para os cálculos isso não deve interferir…

Você pode resolver isso formatando diferente, quando passa para String.

Andre_Brito

Como está seu DecimalFormat?

private String formatarValor(double valor) {
    DecimalFormat formatador = new DecimalFormat("##,###00.000");
    String s = formatador.format(valor);
    s = s.replace(',', '.'); 

    return s;
}

Acho que deve funcionar.
Abraço.

[editado]
Opz, não vi que você já tinha postado thegoergen.
Desculpa.
[/editado]

arm.jr

No BD está com o valor 0.003 quando faz o rset.getDouble passa para 0.0030, eu formato e fica tudo certo, mas eu tenho que colocar num Double ai acrescenta o zero

DecimalFormat f = new DecimalFormat("0.000");
// no getDouble o valor já vai para 0.0030 o valor no BD é 0.003
String x = f.format(rset.getDouble(1));  // formata e fica com o valor correto 0.003
System.out.println(new Double(x));
// retorna 0.0030
thegoergen

É que essa linha:

System.out.println(new Double(x));

Mostra o toString() do Double, e ele tem um formato diferente. Não sei, talvez esteja mentindo, mas poode ser que o formato padrão é com 4 casas decimais… Se quiser diferente, vai ter que usar o DecimalFormat…

arm.jr

Continua mostrando o valor errado.

Criado 24 de novembro de 2008
Ultima resposta 24 de nov. de 2008
Respostas 5
Participantes 3