Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何使用十进制变量_Objective C_Variables_Decimal - Fatal编程技术网

Objective c 如何使用十进制变量

Objective c 如何使用十进制变量,objective-c,variables,decimal,Objective C,Variables,Decimal,我使用For循环遍历数组中包含百分比的变量。对于每个值,我通过一个等式得到所有百分比的平均值。唯一的问题是,我不确定如何更改变量类型以适应小数,同时也使用我的等式 // Calculate average of all percentages for specific exercise long totalNumber = 0; int temp; long numberOfObjects = [iterationArray count]; for (NSArray *object in ite

我使用For循环遍历数组中包含百分比的变量。对于每个值,我通过一个等式得到所有百分比的平均值。唯一的问题是,我不确定如何更改变量类型以适应小数,同时也使用我的等式

// Calculate average of all percentages for specific exercise
long totalNumber = 0;
int temp;
long numberOfObjects = [iterationArray count];
for (NSArray *object in iterationArray) {
    temp = [(NSNumber *)[object objectAtIndex:4] intValue]/100;
    totalNumber = totalNumber + temp;
}
exercisePercentage = (totalNumber/numberOfObjects)*100;

return exercisePercentage;
我知道
temp
是需要小数的变量。我正在考虑使用一个
NSDecimalNumber
,但不知道如何与代码的其余部分相适应,以返回一个
long


我尝试过将temp设置为double或float,但在
temp=[(NSNumber*)[objectAtIndex:4]intValue]/100行都返回0尽管
[(NSNumber*)[objectobjectatindex:4]intValue]是80。

请将临时表单int的类型更改为float或double

double temp;
float temp;

请将临时表单int的类型更改为float或double

double temp;
float temp;

int与int的除法总是返回int,因此需要将一个值转换为float或double,如下所示:

// Calculate average of all percentages for specific exercise
double totalNumber = 0.0;
double temp;
long numberOfObjects = [iterationArray count];
for (NSArray *object in iterationArray) {
    temp = [(NSNumber *)[object objectAtIndex:4] intValue]/100.0;
    totalNumber = totalNumber + temp;
}
exercisePercentage = (totalNumber/numberOfObjects)*100.0;

return exercisePercentage;

看,它是100.0,现在应该可以工作了。

int与int的除法总是返回int,所以您需要将一个值转换为float或double,如下所示:

// Calculate average of all percentages for specific exercise
double totalNumber = 0.0;
double temp;
long numberOfObjects = [iterationArray count];
for (NSArray *object in iterationArray) {
    temp = [(NSNumber *)[object objectAtIndex:4] intValue]/100.0;
    totalNumber = totalNumber + temp;
}
exercisePercentage = (totalNumber/numberOfObjects)*100.0;

return exercisePercentage;
看,它是100.0,现在应该可以工作了