float Result richtig darstellen

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
shaft
User
Beiträge: 1
Registriert: Mittwoch 22. September 2021, 22:51

Hallo alle miteinander,

ich habe vor ein paar Wochen mit Python angefangen und stehe da vor einem kleinen Problem.
Wenn ich folgendes code:

>>> a = 0.00001234
>>> b = 0.00004321
>>> c = a + b
>>> print(c)
5.555e-05

Warum bekomme ich als Ergebnis eine notierte Darstellung nicht 0.00005555
Wie kann ich mir das Ergebnis als Zahl anzeigen lassen so wie ich das kenne?
Ich möchte kein "str" daraus machen weil ich noch damit rechnen möchte
Danke im Voraus
Liebe Grüße
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@shaft: zur Darstellung mußt Du immer einen String daraus machen. `print` macht das automatisch für Dich, wenn Du etwas anderes möchtest, dann mußt Du explizit eine Formatangabe machen. Sei Dir aber bewußt, dass Kommazahlen immer gerundete Zahlen sind und es deshalb überraschende Ergebnisse geben könnte:

Code: Alles auswählen

a = 0.00001234
b = 0.00004321
c = a + b
print(f"{c:.8f}")
Willst Du das um jeden Preis vermeiden, mußt Du mit Decimal rechnen:

Code: Alles auswählen

from decimal import Decimal
a = Decimal('0.00001234')
b = Decimal('0.00004321')
c = a + b
print(c)
Das ist aber im Normalfall nicht der richtige Weg, sondern setze Dich mit Floatingpoint auseinander und lerne damit umzugehen, auch wenn es für Dich zunächst seltsam aussieht.
Benutzeravatar
sparrow
User
Beiträge: 4164
Registriert: Freitag 17. April 2009, 10:28

@shaft: Das überraschende Ergebnis wird übrigens dann sichtbar, wenn du dir mehr Nachkommastellen anzeigen lässt:

Code: Alles auswählen

>>> a = 0.00001234
>>> b = 0.00004321
>>> c = a + b
>>> print(f"{c:.8f}")
0.00005555
>>> print(f"{c:.10f}")
0.0000555500
>>> print(f"{c:.100f}")
0.0000555500000000000017743619074028771365192369557917118072509765625000000000000000000000000000000000
Benutzeravatar
DeaD_EyE
User
Beiträge: 1012
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Lernt man in der Mathematik-Vorlesung: https://www.youtube.com/watch?v=dgrDTblPhwc
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Antworten