Formato stringa, numero intero con zeri iniziali


97

Uso questo codice:

NSString* strName = [NSString stringWithFormat:@"img_00%d.jpg", pp];

e funziona bene, ma se pp ha preso il valore di 10 per esempio, vorrei avere img_010.jpg come risultato e non img_0010.jpg ... come posso formattare la stringa ??

Grazie

Risposte:


249

Usa la stringa di formato "img_%03d.jpg"per ottenere numeri decimali con tre cifre e zeri iniziali.


5

Per i posteri: funziona con i numeri decimali.

NSString *nmbrStr = @"0033620340000" ;
NSDecimalNumber *theNum = [[NSDecimalNumber decimalNumberWithString:nmbrStr]decimalNumberByAdding: [NSDecimalNumber one]] ;     
NSString *fmtStr = [NSString stringWithFormat:@"%012.0F",[theNum doubleValue]] ;

Sebbene queste informazioni siano difficili da trovare, in realtà sono documentate qui nel secondo paragrafo in Nozioni di base sulla formattazione. Cerca il carattere%.

https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Strings/Articles/FormatStrings.html


1
Nota qui che il "12" in si @"%012.0F"riferisce al numero di cifre totali, quindi includendo il punto decimale e qualsiasi cosa a destra.
bcattle

Per aggiungere al commento di bcattle, questo include anche qualsiasi cosa a destra . Per visualizzare -012,34, dovresti usare@"%07.2f"
n_b
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.