Dúvida, notação 'E' do double

1 resposta
luciano_castilho

Seguinte pessoal… realizei alguns testes com um programinha para calculo de fatorial (n!) utilizando variáveis do tipo ‘long’, até ai tudo bem.
Porém quanto o fatorial é muito grande o resultado passou a ser ZERO, ai mudei o tipo para ‘double’ assim, pude calcular números bem maiores mas percebi que os resultados usam uma extranha notação, onde o resultado obtido é acrescido de um ‘E’.

Pergunto, o que é esse ‘E’, o que ele representa?

Por exemplo, para um mesmo número, usando tipos diferentes no double aparece um ‘E18’ :?: :

long 2.432902008176640000
double 2.43290200817664E18

1 Resposta

Rafael_Afonso

O “E” que aparece no seu double significa exponencial de 10. Assim 2.0E18 significa 2.010^18 ou 2 seguido de 18 zeros.
Quanto ao fato de obter zero é porque o fatorial obtido estorou a Limite de long que é 2^64~(2^4)
(1E3)^6=16E18 (16 seguido de 18 zeros :idea: ). Tente implementar seu fatorial usando java.math.BigInteger.
Outra coisa: no Long que você apresentou aparece realmente o “.” depois do 2?
:idea: Como cheguei a esta estomativa? 2^10=1024~1E3

Espero que ajude,

Criado 20 de maio de 2003
Ultima resposta 20 de mai. de 2003
Respostas 1
Participantes 2