好吧,我在我的应用程序中的计算遇到了问题,我很确定这是由于小数太长造成的。无论如何,这是需要完成的事情,因为它将大大减少我需要的代码量。
下面是我目前如何拥有这部分代码......
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));
我需要做的是将“abHipAvg”和“neckAvg”四舍五入到最接近的 .5 或 .0 。用户只会输入 .25 、 .5 或 .75 但一旦我将它们除以 3 我需要四舍五入答案向上或向下到最接近的一半,以便我的其余计算正常工作。我尝试浏览这里的一些问题来找到解决方案,因为我之前见过类似的问题,我只是不记得在搜索中在哪里或输入什么内容。如果有人能指出我正确的方向,我将非常感激。
最简单的方法是用你的最终数字乘以 2 并循环。然后除以 2。
(abHipAvg = (((ab1+ab2+ab3)/3)+((hip1+hip2+hip3)/3)));
abHipAvg = roundf(abHipAvg * 2.0f) / 2.0f;
和neckAvg 一样。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)