Python Mehr Nachkommastellen bei Float Zahlen?

2 Antworten

Vom Beitragsersteller 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

YugiohFan17 
Beitragsersteller
 18.06.2017, 13:32

Oki danke

0
YugiohFan17 
Beitragsersteller
 17.06.2017, 16:58

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

0
Isendrak  17.06.2017, 17:01
@YugiohFan17

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

Mit anderen Worten: Keine weiteren Pakete nötig.

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/