c ++整数除法

时间:2012-11-15 04:41:18

标签: c++ sdl

说我有

SDL_Rect rect;
rect.x = 5; // rect.x is of type "Uint16"
int y = 11;

我想执行操作rect.x/y

我希望将结果作为浮点数,然后向上舍入到最近的int

这样的事情:

float result = rect.x/y;
int rounded = ceil(result);

我该怎么做?

3 个答案:

答案 0 :(得分:4)

rect.xy投射到浮点数,然后进行除法。这将强制整个除法操作以浮点形式发生。

float result = rect.x/(float)y;
int rounded = ceil(result);

答案 1 :(得分:0)

您需要投射变量。

float result = (float)rect.x / (float)y;
int rounded = ceil(result);

答案 2 :(得分:0)

您可以在没有任何浮点类型的情况下执行此操作。如果xy为正整数,则x除以y,向上舍入为(x+y-1)/y