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