我怎样才能填充左边的整数零?
我有以下variables:
NSNumber *consumption = [dict objectForKey:@"con"]; 这将返回42.如何将此数字填充到左侧的10个数字,以零开头。 输出应该看起来像,
0000000042
或者如果它是420,
0000000420
 NSString *paddedStr = [NSString stringWithFormat:@"%010d", 42]; 
 编辑:这是C风格格式。  %nd表示宽度至less为n。 所以如果整数是2位长,那么你将有长度为3的string(当使用%3d时)。 默认情况下,左边的空白空间被填充。  %0nd(%和n之间的0)表示0用于填充而不是空格。 这里n是总长度。 如果整数小于n位,则使用左填充。 
  Objective-C方式, 
 NSNumberFormatter * numberFormatter = [[[NSNumberFormatter alloc] init] autorelease]; [numberFormatter setPaddingPosition:NSNumberFormatterPadBeforePrefix]; [numberFormatter setPaddingCharacter:@"0"]; [numberFormatter setMinimumIntegerDigits:10]; NSNumber * number = [NSNumber numberWithInt:42]; NSString * theString = [numberFormatter stringFromNumber:number]; NSLog(@"%@", theString); 
  C方式虽然更快。 
 你不能在NSNumber本身。 如果你从数字或者使用NSLog()创build一个string,只需使用适当的格式,例如 
 NSLog(@"%010d", [consumption intValue]); 
你可以用NSNumberFormatter来完成你想要的任何数字格式。 在这种情况下,我想你会想要使用setFormatWidth:和setPaddingCharacter:函数。
例如用零填充其余的5个数字:
 NSInteger someValue = 10; [NSString stringWithFormat:@"%05ld", someValue]; 
 点号后只需要2位数的浮点数就相当于.02f 。 
所以你有0 =填零,5 =数字和types的数量。
解决scheme为Swift 3
 let x = 1078.1243 let numFormatter = NumberFormatter() numFormatter.minimumFractionDigits = 1 // for float numFormatter.maximumFractionDigits = 1 // for float numFormatter.minimumIntegerDigits = 10 // how many digits do want before decimal numFormatter.paddingPosition = .beforePrefix numFormatter.paddingCharacter = "0" let s = numFormatter.string(from: NSNumber(floatLiteral: x))! 
OUTPUT
“0000001078.1”