如何从一个NSMutableArray获得货币的总和

我想从NSMutableArray的货币的总和。 例如:我有一个数组A(1,234.56,2,345.67),并且在数组中添加项之后,我想要结果显示为:3,580.23把它放在标签上。 有没有办法来实现这个?

谢谢

如果值存储为NSNumber对象,则可以使用收集操作符。 例如:

 NSArray *array = @[@1234.56, @2345.67]; NSNumber *sum = [array valueForKeyPath:@"@sum.self"]; 

如果你想使用NSNumberFormatter很好地格式化这个sum

 NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; formatter.numberStyle = NSNumberFormatterDecimalStyle; NSString *result = [formatter stringFromNumber:sum]; NSLog(@"result = %@", result); 

如果你的值真的用string表示, @"1,234.56"@"2,345.67"等,那么你可能需要手动迭代数组,使用NSNumberFormatter将它们转换为数值,随着它们的增加:

 NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; formatter.numberStyle = NSNumberFormatterDecimalStyle; NSArray *array = @[@"1,234.56", @"2,345.67"]; double sum = 0.0; for (NSString *string in array) { sum += [[formatter numberFromString:string] doubleValue]; } NSString *result = [formatter stringFromNumber:@(sum)]; NSLog(@"result = %@", result); 

最简单的方法是这样的:

 NSMutableArray *array = [NSMutableArray arrayWithArray:@[@(1234.56), @(2345.67)]]; double sum = [[array valueForKeyPath: @"@sum.self"] doubleValue];