Ich wollte wissen, wie ich Pi bis zur n-ten Ziffer erzeugen kann. Ich habe ein paar grundlegende Ideen.
Math.PI
und erhöhe die Genauigkeit (wenn das möglich ist) Kurz gesagt, in jedem Fall müsste ich die Genauigkeit von BigDecimal
abhängig von der n-ten Ziffer erhöhen. Wie würde ich die Genauigkeit von BigDecimal
auf n-te Stelle erhöhen? Wenn es eine bessere und schnellere Lösung gibt, können Sie mich bitte in die richtige Richtung weisen.
EDIT: Ich möchte nur PI erzeugen. Ich möchte nicht für Berechnungen verwenden. und das ist eine Frage darüber, wie ich mit BigDecimal meine Ideen zum Erzeugen von PI umsetzen kann.
Math.PI
hat den Typ double
. Das bedeutet etwa 15 Dezimalstellen Genauigkeit, und das sind alle Daten, die Sie haben; nichts wird auf magische Weise zusätzliche Ziffern von PI erscheinen lassen. BigDecimal
hat eine beliebige Genauigkeit. Mit setScale()
können Sie BigDecimal
-Objekte so genau erstellen, wie Sie möchten, und die meisten arithmetischen Methoden erhöhen automatisch die Genauigkeit wie gewünscht, aber je genauer, desto langsamer werden natürlich alle Berechnungen. BigDecimal
kein integriertes sqrt () gibt, also müssen Sie Ihr eigenes schreiben. Sie müssen MathContext
verwenden, um die Genauigkeit von BigDecimal
z.B.
%Vor% Es ist wichtig, dass ALLE BigDecimal
s, die Sie in Ihren Berechnungen verwenden, das MathContext
verwenden.
Herons Methode sollte Ihnen eine Genauigkeit von 1000 Stellen mit nur 10 Iterationen und eine Million Ziffern mit 20 Iterationen geben, also ist es sicherlich gut genug.
Erstellen Sie auch alle Konstanten BigDecimal
s wie z. 26390
nur einmal am Anfang Ihres Programms.
Tags und Links java pi precision bigdecimal