Notação cientifica Double

7 respostas
M

Pessoal,

Alguém sabe como fazer para a classe double não utilizar notação cientifica. Quando fazemos:

double d =100000000000000.0
System.out.println(d);

Ele utiliza notação cientifica: 1Exx

Como exibir o número completo?

Obrigado

7 Respostas

D

Utilize a classe NumberFormat :smiley:

M

utilizando

DecimalFormat df = new DecimalFormat(“0.####”);

System.out.println(df.format(12345678901234567890.3695));

Obtenho: 12345678901234567000

O problema ocorre pela precisão do número. Meu número tem (20.4) 20 digitos e 4 decimais.

Como evitar o arredondamento?

Obrigado

L

Também passei por esse problema usando double…
Tente usar BigDecimal que funciona certinho com quantas casas quiser

L

Só uma curiosidade…em qual situação que vais usar um numero tão grande…de 20 dígitos?

M

É uma apliacação cientifica.

Mesmo utilizando BigDecimal ele arredonda a casa decimal.

Alguma idéia.

L

No bigDecimal vc pode definir quantas casas decimais vc vai usar… ele sai com uma quantidade X por default…mas ele possui métodos para informar quantas casas decimais deve usar

A

BigDecimal só vai arredondar se vc pedir.
Ele até lança uma exception caso não consiga representar corretamente todas as casas decimais.

Criado 9 de fevereiro de 2011
Ultima resposta 9 de fev. de 2011
Respostas 7
Participantes 4