Python Nachkommastellen erhöhen?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Schwarze_Mamba
User
Beiträge: 16
Registriert: Montag 5. November 2012, 20:31

Ich habe eine Frage: Wie lassen sich die maximalen
Nachkommastellen einer Zahl in Python(3.1) erhöhen. ES geht mir
darum: 1. Will ich Pi mit 100 Nachkommastellen ausgeben. Hiermit werden nur 50 Angezeigt:

Code: Alles auswählen

print("Pi mit 100 Nachkommastellen: %.100f" % (pi) )
2. Eine beliebiege Zahl mit beliebig vielen Nachkommastellen ausgeben.
Soll darum gehen eine durch Formel erzeugte irrationale Zahl(~ undenliche Zahl)
auszugeben und in Datei zu schreiben.

Schwarze_Mamba
BlackJack

@Schwarze_Mamba: Der Python-Datentyp `float` entspricht dem C-Datentyp ``double``. Was immer dessen Beschränkungen auf der eingesetzten Plattform sind, gilt auch für Python und kann nicht geändert werden. In der Regel ist das auf PCs eine interne Repräsentation der Zahl mit der der Prozessor direkt umgehen kann und die ist in der Regel 64 Bit gross.

Wenn man beliebig viele Stellen vor und nach dem Komma haben möchte, muss man auf einen Zahldatentyp ausweichen, der in Software berechnet wird. Python hat das `decimal`-Modul in der Standardbibliothek. Und es gibt eine externe Anbindung an die GMP-Bibliothek: `gmpy` (keine Ahnung ob für Python 3 verfügbar).

Um π mit hundert Nachkommastellen ausgeben zu können, muss es erst einmal berechnet werden. Die Konstante aus dem `math`-Modul ist ein `float` und hat dementsprechend nur die Anzahl von Stellen, die in ein `float` passen.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Schwarze_Mamba hat geschrieben:Soll darum gehen eine durch Formel erzeugte irrationale Zahl(~ undenliche Zahl)
auszugeben und in Datei zu schreiben.
Für eine Zahl mit unendlich vielen Nachkommastellen solltest du erst einmal eine Menge Festplatten kaufen. Eine sehr große Menge Festplatten. Und dann jeweils noch eine mehr.

Wenn es doch weniger sein dürfen, dann ist decimal vielleicht etwas für dich.
Schwarze_Mamba
User
Beiträge: 16
Registriert: Montag 5. November 2012, 20:31

BlackJack hat geschrieben:Um π mit hundert Nachkommastellen ausgeben zu können, muss es erst einmal berechnet werden. Die Konstante aus dem `math`-Modul ist ein `float` und hat dementsprechend nur die Anzahl von Stellen, die in ein `float` passen.
Das sollte kein Problem darstellen
BlackJack

Das sollte in der Tat kein Problem darstellen:

Code: Alles auswählen

In [165]: print gmpy.pi(325)
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821481
:-)
Antworten