格式字符串,带前导零的整数
Posted
技术标签:
【中文标题】格式字符串,带前导零的整数【英文标题】:Format string, integer with leading zeros 【发布时间】:2010-06-06 17:40:42 【问题描述】:我想将一个整数值转换为带有前导零的字符串(如果需要),这样该字符串总共有 3 个字符。例如,5
将变为 "005"
,10
将变为 "010"
。
我试过这段代码:
NSString* strName = [NSString stringWithFormat:@"img_00%d.jpg", i];
这部分有效,但如果i
的值为10
,例如,结果是img_0010.jpg
,而不是img_010.jpg
。
有没有办法做我想做的事?
【问题讨论】:
【参考方案1】:使用格式字符串"img_%03d.jpg"
获取具有三位数字和前导零的十进制数。
【讨论】:
澄清:“3”可以替换为任何数字,以使显示值中的总位数。例如,%06d
会产生类似000001
的值。【参考方案2】:
为了后代:这适用于十进制数。
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
【讨论】:
这里注意@"%012.0F"
中的“12”是指总位数,所以包括小数点和右边的任何数字。
添加到 bcattle 的评论中,这还包括 right 的任何内容。要显示 -012.34,您必须使用 @"%07.2f"
以上是关于格式字符串,带前导零的整数的主要内容,如果未能解决你的问题,请参考以下文章