Ich versuche, eine Reihe von Zeichenfolgen aus einer TXT-Datei in int-Dateien innerhalb einer Liste zu konvertieren. Ich konnte ein nettes Codeschnipsel finden, das jede Zeile zurückgibt, und dann versuchte ich, es in ein int umzuwandeln. Das Problem ist, dass die Zahlen in wissenschaftlicher Notation sind und ich diesen Fehler erhalte: ValueError: ungültiges Literal für int () mit Basis 10: '3.404788e-001'.
Dies ist der Code, mit dem ich herumgespielt habe
%Vor% Verwenden Sie float(i)
oder decimal.Decimal(i)
für Gleitkommazahlen, abhängig davon, wie wichtig die Genauigkeit für Sie ist.
float
speichert die Zahlen in maschinenpräzisen IEEE Gleitkommazahlen, während Decimal
beibehalten wird volle Genauigkeit, auf Kosten von langsamer.
Außerdem können Sie über eine geöffnete Datei iterieren, Sie müssen readlines()
nicht verwenden.
Und ein einzelnes Listenverständnis kann alles tun, was Sie brauchen:
Wenn Sie wirklich nur ganze Zahlen benötigen, können Sie int(float(number))
Ihre Zeichenfolge sieht wie ein float
aus, also wandeln Sie sie in ein float
zuerst um.
Tags und Links python