使用 NSNumberFormatter 为 Currency 生成前导零
Produce leading zero with NSNumberFormatter for Currency
对于数字,格式化后,我希望它显示为$050,下面的代码不起作用。但是如果我使用 NSNumberFormatterDecimalStyle,它可以显示 050。你知道为什么吗?
NSNumberFormatter *f = [[NSNumberFormatter alloc] init] ;
f.numberStyle = NSNumberFormatterNoStyle;
NSNumber *myNumber;
NSString *myString;
myNumber = [f numberFromString:@"50"]; // Note that the extra zeros are useless
[f setNumberStyle:NSNumberFormatterCurrencyAccountingStyle];
[f setFormatWidth:3];
//[f setPaddingPosition:NSNumberFormatterPadAfterPrefix];
[f setPaddingCharacter:@"0"];
myString = [f stringFromNumber:myNumber];
NSLog(@"myString: %@",myString);
无聊的答案是美国货币样式(据我所知还有澳大利亚和加拿大货币)从不使用前导零,除非金额是零美元和一些美分(例如“$0.43”)。 NSNumberFormatterDecimalStyle
,另一方面,可以使用填充零。
对于数字,格式化后,我希望它显示为$050,下面的代码不起作用。但是如果我使用 NSNumberFormatterDecimalStyle,它可以显示 050。你知道为什么吗?
NSNumberFormatter *f = [[NSNumberFormatter alloc] init] ;
f.numberStyle = NSNumberFormatterNoStyle;
NSNumber *myNumber;
NSString *myString;
myNumber = [f numberFromString:@"50"]; // Note that the extra zeros are useless
[f setNumberStyle:NSNumberFormatterCurrencyAccountingStyle];
[f setFormatWidth:3];
//[f setPaddingPosition:NSNumberFormatterPadAfterPrefix];
[f setPaddingCharacter:@"0"];
myString = [f stringFromNumber:myNumber];
NSLog(@"myString: %@",myString);
无聊的答案是美国货币样式(据我所知还有澳大利亚和加拿大货币)从不使用前导零,除非金额是零美元和一些美分(例如“$0.43”)。 NSNumberFormatterDecimalStyle
,另一方面,可以使用填充零。