Ich lese Daten aus einer Datei ein, modifiziere sie und schreibe sie in eine andere Datei. Die neue Datei wird von einem anderen Programm gelesen. Daher ist es wichtig, die genaue Formatierung zu übernehmen
eine der Nummern in meiner Eingabedatei lautet beispielsweise:
1.000000
mein Skript wendet etwas Mathematik auf die Spalten an und sollte zurückkehren
2.000000
Was aber gerade zurückgegeben wird, ist
2.0
Wie schreibe ich ein Float zum Beispiel my_float = 2.0
, als my_float = 2.00000
in eine Datei?
Formatiere es auf 6 Dezimalstellen:
format(value, '.6f')
Demo:
>>> format(2.0, '.6f')
'2.000000'
Die format()
-Funktion wandelt Werte in Zeichenfolgen um, die den Formatierungsanweisungen folgen gegeben.
Eine Antwort mit dem Befehl format () finden Sie oben. Wenn Sie jedoch mit Floats arbeiten, die einen exakten Wert darstellen müssen, möchten Sie möglicherweise das Standardbibliothekobjekt Decimal betrachten. Sie können die Genauigkeit und Rundung in der Kontextklasse festlegen. Standardmäßig werden jedoch die Anzahl der Nullen beibehalten, die Sie in die Kontextklasse einfügen:
>>> import decimal
>>> x = decimal.Decimal('2.0000')
>>> x
Decimal('2.0000')
>>> print x
2.0000
>>> print "{0} is a great number.".format(x)
2.0000 is a great number.
Ich habe alles versucht, aber nichts funktionierte so, wie ich es mir gewünscht hatte, schließlich funktionierte es für mich.
foo = 56
print (format(foo, '.2f'))
print (format(foo, '.3f'))
print (format(foo, '.5f'))
output:
56.0
56.00
56.000
56.00000
Das bedeutet, dass das 2. Argument von format
die Nachkommastellen einnimmt, zu denen Sie aufsteigen müssten. Beachten Sie, dass format
einen Stich zurückgibt.