2016-06-09 9 views
1

Ich schreibe ein Programm, wo ich sehr genaue dezimale Darstellungen von Brüchen (d. H. Genau zu über 200 Dezimalstellen) übergeben muss. Wenn Python jedoch einfach so benannt wird, dass es mehr Dezimalstellen enthält (z. B. mit% .50f), wird oft einfach ein Bündel von 0 an die Enden bestimmter Dezimalstellen angehängt.Python - Wie erhöht man die Genauigkeit von Dezimalzahlen?

Gibt es eine Möglichkeit, Python eine beliebige Anzahl von Dezimalstellen für einen Bruch genau anzuzeigen? Muss ich ein Paket/Modul installieren?

+0

BigNumbers, BigDecimals usw.? Keine Ahnung, wie sie in Python heißen, aber ich bin mir ziemlich sicher, dass Python sie hat. Sie ermöglichen es Ihnen, Zahlen mit einer nahezu unendlichen Anzahl von Dezimalstellen zu definieren, ohne die Präzision zu verlieren. –

+0

Sehen Sie sich https://docs.python.org/2/library/decimal.html an. –

Antwort

0

Überprüfen Sie die decimal module, die mit Python enthalten ist. Es kann die genaue Dezimaldarstellung von jedem Wert zeigen, der in einer Gleitkomma- oder Dezimalvariable gespeichert wird.

Dies ist nicht das Gleiche wie beliebig viele Nachkommastellen für einen Bruch anzuzeigen, aber sehen Sie, ob es Ihren Bedürfnissen entspricht.

2

Python 2.7 und höher können Sie wie folgt vor,

die Decimal Library aus den Python-Standardbibliotheken Verwendung von from decimal import * verwenden und dies zu tun:

from decimal import * 
with localcontext() as context: 
    context.prec = #your_precision_here 
    print(Decimal(#calculation_here)) 
+0

Dezimal Ich glaube, kann unbegrenzte Präzision tun, weil es das Gleiche wie die großen Zahlen tut, so kann es virtuell eine unbegrenzte Präzision haben – bi0phaz3

+1

sollten Sie "ist Kontext" zu "als Kontext" ändern. Ich würde es bearbeiten, aber seine zu kleine Bearbeitung zu erlauben –

+0

Sorry ja korrigiert, dass ein Fehler war – bi0phaz3

Verwandte Themen