Calculando uma resposta em Java com mais de 16 casas decimais

Eu escrevi um pequeno programa para calcular Pi em Java.

Meus summations estão atualmente digitadosdouble.

Eu tenho duas saídas, uma que é Pi a 16 casas decimais (a saída bruta). A segunda saída é arredondada usandoNumberFormat/DecimalFormat para 3 a 5 casas decimais.

Eu passei um pouco pesquisando e navegando no Stackoverflow, mas como iniciante não tenho certezakeywords que pode ser necessário para encontrar o método correto que estou procurando, então, por favor, desculpe minha ingenuidade ...

É possível calcular uma resposta (ou seja, Pi) para mais de 16 casas decimais? Diga, 32? Se sim, como posso abordar isso?

Eu olhei paraBigDecimalNo entanto, eu não acho que isso é o que eu estou depois, como todos os exemplos que eu já vi pré-definir o número com uma grande quantidade de casas decimais primeiro, não através de um cálculo, mas posso estar errado.

CompreendodoubleOs tipos de 64 bits não atingem mais de 16 casas decimais. Eu também entendo usandolong como um tipo perderá precisão ...

Qualquer conselho ou orientação será apreciado.

Obrigado.

Atualizar

Infelizmente, ainda não estou recebendo mais de 16 casas decimais usando BigDecimals ... Estou indo na direção certa?

Atualizar novamente

Acabei de perceber que acho que meu problema é comscale durante a minha divisão. Eu mudei para 100 e agora eu tenho Pi para 100 casas decimais ... Eu acho que oscale parâmetro permite mais precisão, etc.divide(BigDecimal divisor, int scale, int roundingMode) método. Veja o Java Doc>> aqui <<

Com 500.000 termos da série Madhava – Leibniz, agora posso calcular Pi para 10.000 casas decimais com 6 algarismos significativos “corretos”. O restante ainda está convergindo (e obviamente precisa de mais termos do 1000 para obter uma representação mais precisa do Pi). Mas para os propósitos do que a maioria de nós precisa de Pi, tudo bem.

Obrigado a todos pela vossa ajuda.

questionAnswers(3)

yourAnswerToTheQuestion