当我定义
NSString *testString = [NSString stringWithFormat:@"%4d", 543210];
Run Code Online (Sandbox Code Playgroud)
然后testString是@"543210",而不是@"3210"
这曾经在Xcode v4.3.1中工作,但现在我升级到v4.6并且它停止工作.
有任何想法吗?
小智 5
那么testString是
@"543210",而不是@"3210"
无论如何,这是正确的行为.该%Nd格式说明不限制字段被格式化的数字-它仅与空间垫它如果与外地比来表示数所需的字符数.如果你3210以前有,这是错误的.
如果你想格式化一个数字,最多打印最后四位数,那么你可以这样做:
NSString *numStr = [NSString stringWithFormat:@"%d", 543210]; // or whatever
if (numStr.length > 4) {
numStr = [numStr substringFromIndex:numStr.length - 4];
}
Run Code Online (Sandbox Code Playgroud)