2010-06-06 27 views
93

puedo utilizar este código:Cadena de formato, número entero con ceros a la izquierda

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

y trabaja muy bien, pero si págs tomó el valor de 10, por ejemplo, me gustaría tener img_010.jpg como resultado de ello, y no img_0010.jpg ... ¿cómo puedo formatear la cadena?

gracias

Respuesta

238

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

4

Para la posteridad: esto 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 Aspectos básicos del formato. Busque el% del personaje.

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

+1

Nota aquí que el "12" en '@ "% 012.0F" 'se refiere al número de dígitos en total, por lo que incluir el punto decimal y nada a la derecha. – bcattle

+0

Para agregar al comentario de bcattle, esto también incluye todo lo que sea * correcto *. Para mostrar -012.34, tendría que usar '@"% 07.2f "' –

Cuestiones relacionadas