Chaîne de Format, entier avec des zéros en tête

J'utilise ce code:

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

Et fonctionne bien, mais si pp a pris la valeur de 10 par exemple, je souhaite avoir img_010.jpg comme résultat, et non img_0010.jpg... comment puis-je formater la chaîne??

Merci

94
demandé sur Adam 2010-06-06 21:40:42

2 réponses

Utilisez la chaîne de format "img_%03d.jpg" pour obtenir des nombres décimaux avec trois chiffres et des zéros en tête.

239
répondu Gumbo 2010-06-06 17:43:14

Pour la postérité: cela fonctionne avec des nombres décimaux.

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

Bien que cette information soit difficile à trouver, elle est en fait documentée ici dans le deuxième paragraphe sous formatting Basics. Recherchez le caractère%.

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

4
répondu McUsr 2014-11-04 20:39:37