Say I\'ve got
SDL_Rect rect;
rect.x = 5; // rect.x is of type \"Uint16\"
int y = 11;
and I want to perform the operation rect.x/y
Cast either rect.x
or y
to float, and then do the division. This will force the entire division operation to take place in floating point.
float result = rect.x/(float)y;
int rounded = ceil(result);
You need to cast your variables.
float result = (float)rect.x / (float)y;
int rounded = ceil(result);
You can do this without any floating point types. If x
and y
are positive integers, then x divided by y, rounded up is (x+y-1)/y
.