Un rapido gioco da ragazzi:Format Python troncato galleggiante come int nella stringa
some_float = 1234.5678
print '%02d' % some_float # 1234
some_float = 1234.5678
print '{WHAT?}'.format(some_float) # I want 1234 here too
Nota: {:.0f}
non è un'opzione, perché arrotonda (restituisce 1235
in questo esempio).
format(..., int(some_float))
è esattamente ciò che sto cercando di evitare, per favore non suggerirlo.
@MartijnPieters Forse perché arrotonda piuttosto che tronca? '' {: .0f} ". Format (1234.5678)' è '" 1235 "', non '" 1234 "'. – Blckknght
Cosa succede se la conversione del float in 'int()' o il troncamento sono le uniche opzioni? Il passo successivo è creare una sottoclasse 'float()' per personalizzare l'hook '.__ format __()'. –
Si noti che in questo frammento: ''% 02d'% some_float' sta avvenendo una conversione implicita a' int', non è possibile evitare una sorta di conversione per la stampa nel formato desiderato –