圆形浮动值ios

时间:2013-01-31 18:01:48

标签: objective-c

我有一个值,例如int value1 = 11除以2(value1 / 2)后它返回5.浮点数中的实数值是5.5,在这种情况下,任何人都可以帮我返回6,或者是另一种情况..?一般来说,我想将值舍入到下一个更高的值。

4 个答案:

答案 0 :(得分:24)

如果总是想要整理,并且您有float值,请使用ceilf(来自<math.h>库)。

如果要按n整数除以整数除法,请执行(value + n-1) / n。因此,对于除以2,这变为(value + 1) / 2

答案 1 :(得分:10)

有函数ceil(&lt;#(double)#&gt;)或ceilf(&lt;#(float)#&gt;)将值舍入到更高

此外,您应该明确地将计算转换为float / double以获得值5.5,该值可以舍入到更高。

ceilf(value1 / 2.0f);

ceilf(1.0f * value1 / 2);

如果您不这样做 - 可能会按照下一个顺序显示:

ceilf(11/2) = 
1) 11/2 = result int = 5
2) ceilf(5)
3) 5 ->int implicitly cast to float -> 5.0f
4) result 5.0f

答案 2 :(得分:1)

通常,您只需添加1:

int half =(value1 + 1)/ 2

所以,你总是围捕。应该是整数的最简单方法。

答案 3 :(得分:1)

ceil(value1 / 2)

向上舍入到最近的int