Python Mehr Nachkommastellen bei Float Zahlen?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Warum es mit "float" nicht geht, hat NoHumanBeing ja bereits erklärt, aber mit "decimal" läufts: https://docs.python.org/2/library/decimal.html

Beispiel:

import decimal
decimal.getcontext().prec=50
a = decimal.Decimal('2.0')
b = decimal.Decimal('0.5')
c = a**b
print c

Ausgabe:

1.4142135623730950488016887242096980785696718753769

Brauch ich für decimal irgendwelche nucht-Standart Packete?

0
@YugiohFan17

Nur dann, wenn du ein "nicht standard Python" hast... ;)

Mit anderen Worten: Keine weiteren Pakete nötig.

0

Oki danke

0

Zunächst einmal möchte ich anmerken, dass dies keine Einschränkung ist, die von der Programmiersprache Python herrührt, sondern eine, die bereits in der Gleitkommaeinheit Deines Prozessors vorhanden ist.

64-Bit Gleitkommazahlen haben eine Genauigkeit von 15 - 17 Dezimalstellen, übrigens nicht nur bei der Ausgabe, sondern bei jeder Rechenoperation.

Wenn Du höhere Genauigkeit brauchst, musst Du spezielle Bibliotheken benutzen, welche die Verarbeitung der "größeren" Gleitkommazahlen, die der Prozessor direkt ja nicht verarbeiten kann, in mehreren Maschinenschritten in Software umsetzen.

http://pythonhosted.org/bigfloat/

Was möchtest Du wissen?