我再次遇到初学者问题。我有一个看起来像这样的CSV文件:
3.4,2.4,6.30,2.2,53.42,54,1,5
现在,我有一个可以将其解析为数组的代码
NSError *error;
NSString *filepath = [[NSBundle mainBundle] pathForResource:@"csv_file" ofType:@"csv" inDirectory:nil];
NSString *string = [NSString stringWithContentsOfFile:filepath encoding:NSUTF8StringEncoding error:&error];
NSArray *array = [array componentsSeparatedByString:@","];
我遇到的问题是我不能用这些数字做数学(因为它们是字符 - 或者字符串,不确定 - )。
我的问题是,有没有像我一样的方法,但是用浮点数创建数组,或者是否有办法将array
中的字符串(或字符)放入浮点数。
谢谢,当然如果我的问题不明确,请告诉我。
答案 0 :(得分:0)
让数组中的元素保持NSString
的实例(这就是它们)。就在你从数组中访问一个元素时,让它像这样浮动:
float f = [array[index] floatValue];
Objective-C中不能有NSArray
个浮点数,因为NSArray
可能只包含对象。
答案 1 :(得分:0)
您可能正在寻找floatValue
属性
float sum = 0;
for (NSString *numberString in array) {
sum += [numberString floatValue];
}
如果你想把它们放在一个C数组中:
float floatArray[array.count];
for(i = 0; i < sizeof(floatArray); i++) {
NSString *numberString = array[i];
floatArray[i] = [numberString floatValue];
}
请注意,这种创建c数组的方法会将其添加到堆栈中;如果要将其添加到堆中,则需要使用malloc
。