Ich schreibe ein Programm, das eine unendliche Summe verwendet, um pi sehr schnell auf eine große Anzahl von Dezimalstellen zu berechnen, 22 Iterationen ergeben 15 Dezimalstellen. Aufgrund der Einschränkungen von Python ist dies jedoch die maximale Anzahl von Dezimalstellen, die angezeigt werden können. Also versuchen Sie es und beheben Sie dieses Problem Ich schaute auf das Internet und fand this website, die Informationen über die Python-Dezimal-Klasse enthalten.Wie man Dezimalwerte als Variable speichert
Dies schien die perfekte Lösung für mein Problem, aber beim Versuch diese Methode konnte ich nicht die Zahlen hinzufügen und speichern Sie sie zu einer Variablen. Nachdem ich auf die ursprüngliche Seite zurückgekehrt war, um eine Antwort zu finden, konnte ich nichts finden, was die Variable betrifft. Aber die Seite ist lächerlich lang, und ich hätte leicht etwas übersehen können.
Hier ist mein Code, mit aus dem Dezimalteil gut funktioniert:
from decimal import *
getcontext().prec = 30
n = 0
value = 1/2
while True:
n += 1
top = 1
bottom = 2 ** (2 * n + 1) * (2 * n + 1) * 2
for i in range(n):
top *= 2 * i + 1
if i != 0: bottom *= 2 * i + 2
value += Decimal(top)/Decimal(bottom)
print(value * 6)
EDIT: Dies ist der Fehler, die ich erhalten haben:
TypeError: unsupported operand type(s) for +=: 'float' and 'decimal.Decimal'
Dies ist die erste Zeit, dass ich mit dieser Klasse gearbeitet habe und unsicher bin, wie ich weiterarbeiten kann.
@StefanPochmann Ich habe meine Frage aktualisiert –