0

说我有

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);

我该怎么做?

4

3 回答 3

4

投要么要么rect.x浮动y,然后做除法。这将强制整个除法运算在浮点中进行。

float result = rect.x/(float)y;
int rounded = ceil(result);
于 2012-11-15T04:42:56.300 回答
0

你需要转换你的变量。

float result = (float)rect.x / (float)y;
int rounded = ceil(result);
于 2012-11-15T04:43:21.153 回答
0

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

于 2012-11-15T04:48:42.793 回答