当我定义
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];
}
关于objective-c - Objective-C的“stringWithFormat:”方法发生了什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16331663/