目标C语言 舍入我的小数点浮点数到最接近的一半或整数



好吧,我有问题,我的计算在我的应用程序,我很确定,这是由于小数是长。这是无论如何都需要做的事情,因为它将大大缩短我所需的代码量。

下面的

是我当前的这部分代码…

float ab1 = [abdomen1Input.text floatValue];
float ab2 = [abdomen2Input.text floatValue];
float ab3 = [abdomen3Input.text floatValue];
float hip1 = [hips1Input.text floatValue];
float hip2 = [hips2Input.text floatValue];
float hip3 = [hips3Input.text floatValue];
float neck1 = [neck1Input.text floatValue];
float neck2 = [neck2Input.text floatValue];
float neck3 = [neck3Input.text floatValue];
float height1 = [heightInput.text floatValue];
float neckAvg;
float abHipAvg;
float cirVal;
(abHipAvg = (((ab1+ab2+ab3)/3)+((hip1+hip2+hip3)/3)));
(neckAvg = ((neck1+neck2+neck3)/3));
(cirVal = (abHipAvg - neckAvg));

我需要做的是将"abhipag"one_answers"necavg"四舍五入到最接近的0.5或0.0。用户只会输入0.25,0.5或0.75,但一旦我将这些除以3,我需要将答案上下舍入到最接近的一半,以便其余的计算正常工作。我试着在这里寻找一些问题来找到一个解决方案,因为我之前看到过一个类似的问题,我只是不记得在哪里或在搜索中输入什么。如果有人能给我指出正确的方向,我将非常感激。

最简单的方法是用最后的数字乘以2,然后四舍五入。然后除以2

(abHipAvg = (((ab1+ab2+ab3)/3)+((hip1+hip2+hip3)/3)));
abHipAvg = roundf(abHipAvg * 2.0f) / 2.0f;

最新更新