【发布时间】:2013-01-15 22:23:58
【问题描述】:
在除以 2 (value1 / 2) 后,我有一个值,例如 int value1 = 11,它返回 5。float 中的实际值是 5.5,在这种情况下或其他情况下,谁能帮我返回 6..?一般来说,我想将值四舍五入到下一个更高的值..
【问题讨论】:
-
title里的ios真的有必要吗?
标签: objective-c
在除以 2 (value1 / 2) 后,我有一个值,例如 int value1 = 11,它返回 5。float 中的实际值是 5.5,在这种情况下或其他情况下,谁能帮我返回 6..?一般来说,我想将值四舍五入到下一个更高的值..
【问题讨论】:
标签: objective-c
嗯,通常情况下,您只需添加 1:
int half = (value1+1)/2
所以,你总是会四舍五入。应该是整数最简单的方法。
【讨论】:
如果您总是想要四舍五入,并且您有 float 值,请使用 ceilf(来自 <math.h> 库)。
如果您想将整数除以n,请执行(value + n-1) / n。因此,除以 2 时,它变为 (value + 1) / 2。
【讨论】:
ceil(value1 / 2)
四舍五入到最近的整数
【讨论】:
有函数 ceil() 或 ceilf() 将值四舍五入到更高
您还应该明确地将计算转换为 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
【讨论】: