Frage

meine Eingabe ist 3,23, aber wenn ich schwimmen auf es verwenden, wird es 3.2,

, wenn meine Eingabe ist 3,00, wenn ich auf sie schwimmen kann, wird es 3,0

, wenn ich aus der Zeichenfolge zu schweben konvertieren, ich will es noch 3,00 und nicht mehr als 3,0 sein, ist es möglich? Ich mag den Code kennen, um es möglich zu machen, und wenn ich ein Problem tue, in der der Dezimalpunkt bis 2 Stellen egal, 3,23 ist besser als 3,2, für mehr Präzision

War es hilfreich?

Lösung

Ich nehme an, was Sie wollen, ist ein Schwimmer in eine Zeichenkette mit der Anzahl der Dezimalstellen zu konvertieren, die Sie wollen. Sie können erreichen, dass% .3f mit (hier 3 ist die Anzahl der Dezimalstellen, die Sie drucken wollen. Zum Beispiel:

>>> print "Value: %.2f" % 3.0000

Wert: 3,00

Andere Tipps

Da dieses Thema zunächst auf den Worten „string Formatierung dezimal Pythons“, ich denke, es ist gut, eine neuere Antwort zu geben:

>>> P=34.3234564
>>> string="{:.2f}".format(P)
>>> string
'34.32'

Wenn Sie Dezimalgenauigkeit verwenden wollen, dass der Python decimal Modul:

from decimal import Decimal
x = Decimal('3.00')
print x

Das druckt:

Decimal('3.00')

Wenn Sie eine Gleitkommazahl in eine gewünschte Präzision drucken Sie Ausgabe Formatierungscodes wie folgt verwendet werden:

Unter der Annahme x = 3,125

print "%.1f" % (x)    # prints 3.1
print "%.2f" % (x)    # prints 3.12
print "%.3f" % (x)    # prints 3.125
print "%.4f" % (x)    # prints 3.1250

Das in Python funktioniert 2.6 (ich glaube, sie über die Druckfunktion in Version 3 geändert).

Sie sollten auch erkennen, dass Gleitkommazahlen kann nur mit einer gewissen Genauigkeit gespeichert werden, so dass manchmal werden Sie nicht wieder genau die gleiche Nummer. Zum Beispiel 0.1 kann als so etwas wie 0,9999999987 gespeichert werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top