在我的应用程序中,我正在处理大量数字(货币),并使用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];

10-08 19:28