Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ c++;整数除法_C++_Sdl - Fatal编程技术网

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,事实证明,您是对的!