如何从一个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];