web-dev-qa-db-de.com

Fügen Sie zu einem Float nach dem Dezimalpunkt in Python Nullen hinzu

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?

16
user2015601

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.

45
Martijn Pieters

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.
1
chason

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. 

0
Iqra.