Cadena de formato, entero con ceros a la izquierda

97

Yo uso este código:

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

y funciona bien, pero si pp tomó el valor de 10, por ejemplo, deseo tener img_010.jpg como resultado, y no img_0010.jpg ... ¿cómo puedo formatear la cadena?

Gracias

ghiboz
fuente

Respuestas:

249

Utilice la cadena de formato "img_%03d.jpg"para obtener números decimales con tres dígitos y ceros a la izquierda.

Gumbo
fuente
5

Para la posteridad: funciona con números decimales.

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

Aunque esta información es difícil de encontrar, en realidad está documentada aquí en el segundo párrafo en Conceptos básicos de formato. Busque el carácter%.

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

McUsr
fuente
1
Tenga en cuenta aquí que el "12" en se @"%012.0F"refiere al número total de dígitos, por lo que incluye el punto decimal y cualquier cosa a la derecha.
ganado
Para agregar al comentario de bcattle, esto también incluye cualquier cosa a la derecha . Para mostrar -012.34, tendría que usar@"%07.2f"
n_b