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