C++ c++;整数除法
说我有C++ c++;整数除法,c++,sdl,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); 我应该怎么做?将rect.x或y转换为浮动,然后进行除法。这将强制整个除法操作以浮点形式进行 float result = rect.x/(flo
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);
我应该怎么做?将
rect.x
或y
转换为浮动,然后进行除法。这将强制整个除法操作以浮点形式进行
float result = rect.x/(float)y;
int rounded = ceil(result);
将
rect.x
或y
强制转换为浮动,然后进行除法。这将强制整个除法操作以浮点形式进行
float result = rect.x/(float)y;
int rounded = ceil(result);
您需要强制转换变量
float result = (float)rect.x / (float)y;
int rounded = ceil(result);
您需要强制转换变量
float result = (float)rect.x / (float)y;
int rounded = ceil(result);
您可以在没有任何浮点类型的情况下执行此操作。如果
x
和y
是正整数,那么x除以y,四舍五入为(x+y-1)/y
,您可以在不使用任何浮点类型的情况下执行此操作。如果x
和y
是正整数,那么x除以y,四舍五入为(x+y-1)/y
你试过了吗?它给了你什么?请在stackoverflow之前进行反复试验?@chris:根据“rect.x”的值,有时有效,有时无效(由于未初始化的值,我得到了分段错误)。由于未初始化的值,segfault听起来与除法或ceil
无关。可能是程序中其他地方使用了无效的指针。@aschepler,事实证明,您是对的!你试过了吗?它给了你什么?请在stackoverflow之前进行反复试验?@chris:根据“rect.x”的值,有时有效,有时无效(由于未初始化的值,我得到了分段错误)。由于未初始化的值,segfault听起来与除法或ceil
无关。可能是程序中其他地方使用了无效的指针。@aschepler,事实证明,您是对的!