Chaîne de format, entier avec zéros non significatifs

97

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

ghiboz
la source

Réponses:

249

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

Gombo
la source
5

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 ces informations soient difficiles à trouver, elles sont en fait documentées ici dans le deuxième paragraphe sous Bases du formatage. Recherchez le caractère%.

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

McUsr
la source
1
Notez ici que le "12" dans se @"%012.0F"réfère au nombre total de chiffres, donc y compris le point décimal et tout ce qui se trouve à droite.
bcattle
Pour ajouter au commentaire de bcattle, cela inclut également tout ce qui se trouve à droite . Pour afficher -012.34, vous devez utiliser@"%07.2f"
n_b