Ios 如何从NSMutableArray获取货币总额

Ios 如何从NSMutableArray获取货币总额,ios,nsarray,sum,Ios,Nsarray,Sum,我想从NSMutableArray中提取货币的总和。例如:我有一个数组(1234.562345.67),在数组中求和项之后,我希望结果显示:3580.23将其放在标签上。有没有办法实现这一点 谢谢最简单的方法是: NSMutableArray *array = [NSMutableArray arrayWithArray:@[@(1234.56), @(2345.67)]]; double sum = [[array valueForKeyPath: @"@sum.self"] doubleVa

我想从NSMutableArray中提取货币的总和。例如:我有一个数组(1234.562345.67),在数组中求和项之后,我希望结果显示:3580.23将其放在标签上。有没有办法实现这一点


谢谢

最简单的方法是:

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

最简单的方法是:

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

如果值存储为
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);

如果您的值实际上是由字符串表示的,
@“1234.56”
@“2345.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);

如果值存储为
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);

如果您的值实际上是由字符串表示的,
@“1234.56”
@“2345.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);

您是否将值作为NSString对象存储在数组中?“有没有办法实现?”当然有。@Avt我将值作为NSNumber存储在数组中。您是否将值作为NSString对象存储在数组中?“有没有办法实现?”当然有。@Avt我将值作为NSNumber
@(1234.56)存储在数组中
未编译。@MartinR您是对的,从问题中得到了值。固定的。谢谢。
@(1234.56)
未编译。@MartinR您是对的,从问题中获得了值。固定的。谢谢,谢谢。这是最好的解决方案。下次我会继续这样做。谢谢,谢谢。这是最好的解决方案。下次我会继续这样做。谢谢你,罗布