2015-10-31 12 views
5

Qui ci sono un certo valore float:zeri iniziali per galleggiare nelle Swift

5.3 
23.67 
0.23 

e voglio che siano

05.30 
23.67 
00.23 

Utilizzando String(format: "%.2f", floatVar) può fare 2 cifre dopo la virgola, ma non possono aggiungere zero prima esso.

Ho anche provato String(format: "%04.2f", floatVar) come suggeriscono here ma semplicemente visualizzare stessa %.2f

C'è un modo pulito di fare questo all'interno delle librerie standard Swift?

+0

Prova ' "% *. 2f"'. Ricordo che funzionava in C. – Arc676

+0

@ Arc676 non restituiva nulla :( – Arefly

+0

'*' significa che un altro argomento è usato come numero intero al posto di '*'. Non funziona meglio di '% 5.2f' o peggio, ed è una sorta di suggerimento inutile senza una spiegazione di ciò che fa. –

risposta

13

Prova questo:

String(format: "%05.2f", floatChar) 

Da this documentation: 0 significa pad con zero iniziale. 5 è la larghezza minima, compreso il carattere punto.

+0

cosa succede se la larghezza minima è> 10 come '15'? – Arefly

0

Oppure posso provare più potente API di NumberFormatter

let numberFormatter = NumberFormatter() 
// more settings 
numberFormatter.minimumIntegerDigits = 2 
Problemi correlati