在我的应用程序中,我正在处理大量数字(货币),并使用nsnumberformatter对其进行格式化。但是,当前,小数位数是根据语言环境设置的。由于涉及到大数,因此我不想显示小数位数。任何货币。如何在nsnumberformatter货币样式中将小数位设置为零?
使用的代码
NSDecimalNumber *someAmount = [NSDecimalNumber decimalNumberWithString:unformattedString];
NSNumberFormatter *currencyFormatter = [[[NSNumberFormatter alloc] init] autorelease];
[currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[currencyFormatter setLocale:locale];
NSString *str=[NSString stringWithFormat:@"%.0f",someAmount];
//NSString *str=[currencyFormatter stringFromNumber:someAmount];
最佳答案
使用下面的代码从数字格式器中删除小数位:
[currencyFormatter setMaximumFractionDigits:0];
使用上述代码的完整代码:
NSDecimalNumber *someAmount = [NSDecimalNumber decimalNumberWithString:unformattedString];
NSNumberFormatter *currencyFormatter = [[[NSNumberFormatter alloc] init] autorelease];
[currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[currencyFormatter setLocale:locale];
[currencyFormatter setMaximumFractionDigits:0];
NSString *str=[currencyFormatter stringFromNumber:someAmount];