说我有
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);
我该怎么做?
答案 0 :(得分:4)
将rect.x
或y
投射到浮点数,然后进行除法。这将强制整个除法操作以浮点形式发生。
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)
您可以在没有任何浮点类型的情况下执行此操作。如果x
和y
为正整数,则x除以y,向上舍入为(x+y-1)/y
。