Duvida com Double

3 respostas
G

Olá pessoal

Eu tenho a seguinte situação por exemplo:

BigDecimal num = new BigDecimal (0.00087);
double num2 = num.doubleValue();

quando imprimo o num2 dá 8.7E-4.
pq ?

eu estou passando exatamente aquele numero (0.00087)…
Pode ser um erro estupido, mas eu não estou enxergando !

Agradeço as respostas.

3 Respostas

T

Use new BigDecimal (“0.00087”), e você tem de saber que a notação científica existe.
8.7E-4 é a mesma coisa que 8.7 * 10^-4, ou seja, 8.7 vezes 1/10000 (ou seja, 10 com 4 zeros).

G

thingol:
Use new BigDecimal (“0.00087”), e você tem de saber que a notação científica existe.
8.7E-4 é a mesma coisa que 8.7 * 10^-4, ou seja, 8.7 vezes 1/10000 (ou seja, 10 com 4 zeros).

Ok…
mas então como eu transformo esse numero (8.7E-4) em um double normal ??? do tipo… 0.00087 ???
tem como ?
desculpa a ignorância mas isso tá me tirando do sério…hehe
valeu !

T

Os dois números são a mesmíssima coisa; só são formatados diferentemente.

Se quiser formatar com notação de ponto fixo (0.00087) em vez de notação científica, use algo como:

String s = String.format ("%f", 0.00087);
System.out.println (s); // deve imprimir 0,000870

%f formata com no máximo 6 dígitos depois da vírgula.

Criado 11 de maio de 2009
Ultima resposta 11 de mai. de 2009
Respostas 3
Participantes 2