O double consegue números maiores do que o long… só que com perda de precisão…
Vou tentar explicar mais ou menos…aqui como funciona
O long… é um tipo inteiro… entao vc tem os numeros 1, 2, 3, 4, 5 e assim por diante até chegar no número máximo… um por um…
No double… o que vc tem é uma exponenciação… com mantissa e expoente… o numero double é um número calculado…
Por exemplo o número: 12… para representar ele em double teriamos a mantissa 12 e o expoente 0… e a matemática seria 12 * 10 (elevado a 0) que resultaria em 12
Agora o número: 135,66 Mantissa 13566 Expoente… -2… 13566 * 10 (elevado a -2) que resultaria em 135,66
Um número gigantesco 1992883000000000000,01 Esse número teria que caber todo na mantissa para ser representado corretamente… só que nao cabe… entao a mantissa fica com 1992883 e o expoente com 12
19992883 * 10 (elevado a 12) que resulta em: 1992883000000000000 (sem as casas decimais mesmo)
O double conseguiu guardar um número grande… só que perdeu em precisão…
Mais ou menos essa é a ideia