我有一个NSMutableArray,包含x
个不同的NSStrings(NSString但只有数字没有字母)。我想将所有值相加以返回单个float或int。我想我必须用for循环做这个,但我对for循环非常不熟悉....
好的,我已达到这一点:
for (NSString *a in det)
{
float x = [a floatValue];
NSLog(@"%.2f",x);
}
这将返回'NSLog`中的所有值:
23.00
8.00
61.00
...
我怎么才能把它们加起来?
答案 0 :(得分:14)
您可以避免循环,而是使用key value coding
并获取总数
NSMutableArray *arr = [NSMutableArray arrayWithObjects:@"1.1", @"2.2", @"3.1", nil];
NSNumber *sum = [arr valueForKeyPath:@"@sum.floatValue"];
变量总和为6.4。
答案 1 :(得分:5)
试试这个:
float total = 0;
for(NSString *str in det)
{
total += [str floatValue];
}
答案 2 :(得分:3)
如果您想保存一些输入,这是for-in的代码。对于具有支持它的数据结构的这些类型的场景,最好使用快速枚举。
float result = 0.0;
for(NSString *i in nsArray)
{
result += [i floatValue];
}
答案 3 :(得分:2)
int result = 0;
for(int i=0;i<[array count];i++)
result += [[array objectAtIndex:i] intValue];
如果你需要返回一个浮点数,只需将结果定义为float并使用floatValue
而不是intValue