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
float Result richtig darstellen
@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:
Willst Du das um jeden Preis vermeiden, mußt Du mit Decimal rechnen:
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.
Code: Alles auswählen
a = 0.00001234
b = 0.00004321
c = a + b
print(f"{c:.8f}")
Code: Alles auswählen
from decimal import Decimal
a = Decimal('0.00001234')
b = Decimal('0.00004321')
c = a + b
print(c)
@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
- DeaD_EyE
- User
- Beiträge: 1021
- 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