arrondir mon flottant décimal à la moitié ou au nombre entier le plus proche?

Ok, j’ai des problèmes avec mes calculs dans mon application et je suis sûr que c’est dû aux décimales trop longues. Ceci est quelque chose qui doit être fait de toute façon parce que cela va considérablement réduire la quantité de code dont j’ai besoin.

Voici comment j’ai actuellement cette partie de mon code …

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)); 

Ce que je dois faire est d’arrondir le “abHipAvg” et le “neckAvg” au plus proche .5 ou .0. Les utilisateurs ne vont entrer que .25, .5 ou .75 mais une fois que je les divise par 3, je dois arrondir cette réponse à la moitié près pour que le rest de mes calculs fonctionne correctement. J’ai essayé de regarder à travers quelques questions ici pour trouver une solution parce que j’en ai vu une semblable à celle-ci avant je ne me souviens plus où ou quoi taper dans la recherche. Si quelqu’un pouvait me diriger dans la bonne direction, je l’apprécierais vraiment.

Le moyen le plus simple est de prendre votre numéro final, fois 2 et tour. Puis diviser par 2.

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

et la même chose avec neckAvg.