NSNumberFormatter千分隔符和尾随零

我的帐户数组中有一个值为8500.00的对象。 我想显示为8,500.00,但是当我试图这样做,并打印到控制台它将返回null。 有任何想法吗?

应用程序委托

NSArray *balance = [[NSArray alloc] initWithObjects:@"120.50", @"8500.00", nil]; 

//视图控制器

 // Setup number formatter NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; [formatter setNumberStyle:NSNumberFormatterDecimalStyle]; NSNumber *balance = [[appDelegate.accounts objectForKey:@"Available Balance"] objectAtIndex:indexPath.row]; NSLog(@"%@", balance); // Prints 8500.00 NSLog(@"%@", [formatter stringFromNumber:balance]); // Prints null 

数组平衡是一个NSString不是NSNumber的数组。 这就是为什么方法stringFromNumber:返回nil。

以下示例正常工作:

 NSArray *balanceArr =@[@(120.50), @(8500.00)]; NSNumberFormatter *formatter = [NSNumberFormatter new]; [formatter setNumberStyle:NSNumberFormatterDecimalStyle]; [formatter setMinimumFractionDigits:2]; [formatter setGroupingSize:3]; [formatter setGroupingSeparator:@"'"]; for (NSNumber *balance in balanceArr) { NSLog(@"Straight printing: %@", balance); NSLog(@"NumberFormatter: %@", [formatter stringFromNumber:balance]); } 

输出:

 2014-08-22 12:18:16.669 dsghdtu[5343:60b] Straight printing: 120.5 2014-08-22 12:18:16.671 dsghdtu[5343:60b] NumberFormatter: 120.50 2014-08-22 12:18:16.671 dsghdtu[5343:60b] Straight printing: 8500 2014-08-22 12:18:16.672 dsghdtu[5343:60b] NumberFormatter: 8'500.00