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
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
Utilize a classe NumberFormat
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
Também passei por esse problema usando double…
Tente usar BigDecimal que funciona certinho com quantas casas quiser
Só uma curiosidade…em qual situação que vais usar um numero tão grande…de 20 dígitos?
É uma apliacação cientifica.
Mesmo utilizando BigDecimal ele arredonda a casa decimal.
Alguma idéia.
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
BigDecimal só vai arredondar se vc pedir.
Ele até lança uma exception caso não consiga representar corretamente todas as casas decimais.