当我定义
时NSString *testString = [NSString stringWithFormat:@"%4d", 543210];
然后testString
为@"543210"
,而不是@"3210"
这曾经用于 Xcode v4.3.1 ,但现在我已升级到 v4.6 并停止工作。
有什么想法吗?
答案 0 :(得分:5)
然后testString是
@"543210"
,而不是@"3210"
无论如何,这是正确的行为。 %Nd
格式说明符不限制带有格式化数字的字段 - 如果字段大于表示数字所需的字符数,它只会用空格填充它。如果你之前有3210
,那就错了。
如果您想格式化一个数字,最多打印最后四位数字,那么您可以这样做:
NSString *numStr = [NSString stringWithFormat:@"%d", 543210]; // or whatever
if (numStr.length > 4) {
numStr = [numStr substringFromIndex:numStr.length - 4];
}
答案 1 :(得分:1)
另一种选择,有短缺的好处:
NSString *testString = [NSString stringWithFormat:@"%4d", 543210 % 10000];
模数运算符%
返回余数,所以如果你% 10000
得到4个最低有效数字。