如何从 NSMutableArray 中获取货币总和 [重复]

Posted

技术标签:

【中文标题】如何从 NSMutableArray 中获取货币总和 [重复]【英文标题】:How get the total sum of currency from a NSMutableArray [duplicate] 【发布时间】:2014-04-27 16:06:59 【问题描述】:

我想从 NSMutableArray 计算货币总和。例如:我有一个 arrayA (1,234.56 , 2,345.67) 并且在对数组中的项目求和之后,我希望结果显示:3,580.23 将其放在标签上。有没有办法实现这个?

谢谢

【问题讨论】:

你是否将你的值作为 NSString 对象存储在数组中? "有什么方法可以实现吗?"当然有。 @Avt 我将我的值作为 NSNumber 存储在数组中 【参考方案1】:

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

如果您的值确实由字符串表示,@"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);

【讨论】:

谢谢。这是最好的解决方案。 完成。下次我会继续这样做。谢谢罗伯【参考方案2】:

最简单的方法是这样的:

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

【讨论】:

@(1,234.56) 无法编译。 @MartinR 你是对的,从问题中得到了价值。固定的。谢谢。

以上是关于如何从 NSMutableArray 中获取货币总和 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何从 iPhone 中的货币代码中获取货币符号?

从 NSMutableArray 比较并获取索引

如何从iphone中的货币代码中获取货币符号?

iPhone:如何从Objective-C中的货币符号字符串中获取数字

使用swift从货币代码中获取货币符号

如何获取 NSMutableArray 特定对象