Ein schnellen no-brainer:Format abgeschnitten Python float als int in String
some_float = 1234.5678
print '%02d' % some_float # 1234
some_float = 1234.5678
print '{WHAT?}'.format(some_float) # I want 1234 here too
Hinweis: {:.0f}
ist keine Option, weil es rundet (gibt 1235
in diesem Beispiel).
format(..., int(some_float))
ist genau das, was ich versuche zu vermeiden, bitte nicht vorschlagen, dass.
@MartijnPieters Vielleicht, weil es Runden statt Verkürzungen? '{: .0f}". Format (1234.5678) 'is' "1235" ', nicht' "1234" '. – Blckknght
Was ist, wenn die Konvertierung von float in 'int()' oder das Abschneiden des Floats die einzigen Optionen sind? Der nächste Schritt besteht darin, eine benutzerdefinierte Unterklasse 'float()' zu erstellen, um den '.__ format __()' Hook anzupassen. –
Beachten Sie, dass in diesem Snippet: ''% 02d'% some_float 'eine implizite Konvertierung in' int' stattfindet, können Sie eine Konvertierung für das Drucken im gewünschten Format nicht vermeiden –