格式化字符串,带前导零的整数


97

我使用以下代码:

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

并能正常工作,但是如果pp以10为例,我希望将img_010.jpg作为结果,而不是img_0010.jpg ...如何格式化字符串?

谢谢

Answers:


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
请注意,此处的“ 12”是@"%012.0F"指总位数,因此包括小数点和右边的任何数字。
bcattle 2015年

要添加到bcattle的评论中,还包括右侧的所有内容。要显示-012.34,您必须使用@"%07.2f"
n_b
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.