Wie vermeide ich Zahlenverkürzungen in Python?
Ich habe einen Code:
a = 1.3452347683765746
a = float(a)
print(a)
Nun wird meine Zahl von Python verkürzt. In meinem längeren Orginalcode muss ich float(a) sagen, da sonst der Code einen Fehler ausgeben würde. Und meine Frage ist jetzt, wie ich diese Zahlenverkürzung vermeiden kann. also das eine längere Zahl ausgegeben wird.
(Bei Code wüschen schicke ich gerne den Code rein. :) )
Liebe Grüße Alex.
Hm, also bei mir wird die Ausgabe der Zahl nicht verkürzt.
Kannst du ein Screenshot oder sowas machen?
2 Antworten
Die Zahl selbst wird nicht „verkürzt“. Sie wird mit der vollen in Gleitkommadarstellung möglichen Genauigkeit gespeichert.
Wenn du bei der Ausgabe eine bestimmte Zahl von Nachkommastellen erreichen willst, geht das mit f-Strings so:
Hier ist nichts „random“. Das ist ein direktes Ergebnis der binären Gleitkommadarstellung von Zahlen. In diesem Fall hast du ja schon eine Zahl, die sich auch dezimal nicht verlustfrei darstellen lässt.
https://de.wikipedia.org/wiki/Gleitkommazahl#Einschränkungen_und_deren_mathematische_Grundlagen
Hey,
wenn ich mich nicht irre, müsste das einfach so gehen:
a = float(1.3452347683765746)
print(a)
Mfg Jannick (L1nd)
Aber ich habe ja gesagt, das ich das machen muss... Weil ich z. B. dann noch um damt zu arbeiten , str(a) und dann wieder float(a) machen muss. Aber danke.
Kannst nach meinem Code immer noch str(a) machen. Verstehe das Problem daran gerade nicht :)
Ja, aber wenn ich's danach wieder int(a) mache,...
Das war jetzt aber nur mein Beispiel. In meinem Code rechne ichdirekt etwas aus. Dann kann dazwischen keine neue Variable erstellt werden...
Danke! Aber wenn ich diesen Code eingebe:
a = 10/3
a = f'{a:.20f}'
print(a)
Kommt als Ausgabe 3.33333333333333348136 also richtig mit einer random Zahlenkombination.Wieso ist das so?