Строка формата, целое число с ведущими нулями


97

Я использую этот код:

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

и работает нормально, но если pp принял значение 10, например, я хотел бы получить img_010.jpg в качестве результата, а не img_0010.jpg ... как я могу отформатировать строку ??

Спасибо

Ответы:


249

Используйте строку формата, "img_%03d.jpg"чтобы получить десятичные числа с тремя цифрами и ведущими нулями.


5

Для потомков: работает с десятичными числами.

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

Хотя эту информацию сложно найти, на самом деле она задокументирована здесь, во втором абзаце раздела Основы форматирования. Найдите символ%.

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


1
Обратите внимание, что @"%012.0F"цифра «12» означает общее количество цифр, включая десятичную точку и все, что находится справа.
bcattle

Чтобы добавить к комментарию bcattle, он также включает все, что находится справа . Чтобы отобразить -012,34, вам нужно будет использовать@"%07.2f"
n_b
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.