Opa! Tudo certo, Elias? =)
Quando pedimos para consultarmos a documentação, nos referimos aos JavaDocs, por exemplo... Nesse caso, se você procurar nas classes do Java, encontrará uma chamada de Number, da qual todos números que conhecemos herdam.
Se você olhar logo no começo desse link acima, você verá uma parte escrita "Direct Known Subclasse", com referência para as seguintes classe:
AtomicInteger;AtomicLong;BigDecimal;BigInteger;Byte;Double;Float;Integer;Long;Short.
Legal, temos várias classes, agora precisamos "adivinhar" qual pode substituir o Double, quando precisamos de muita precisão...
Sabemos que as três últimas são utilizadas para representação de número inteiros, com mais ou menos casas, então podemos eliminar esses casos.
O Byte, bom... Representa um byte, então também está fora.
Double é justamente a classe que identificamos o problema, e Float tem menos precisão ainda...
Ficamos somente com as quatro primeiras classes, AtomicInteger, AtomicLong, BigDecimal, BigInteger... Aqui você consegue eliminar tudo, só olhando para o nome das classes... Três delas contém Integer ou Long no nome, o que sugere que tratam de número inteiros, não decimais, como queremos. Aí fica fácil ver que a classe que podemos utilizar é a BigDecimal, sacou? =)
Espero ter ajudado, mas qualquer dúvida não deixe de postar por aqui para que possamos ajudá-lo!
Abraço e bons estudos,
Fábio