中间舍入

Mui*_*uis 0 c c99

如果我有条件;

int a = 1;
int b = 3;

if ((a/b) > 0) ...
Run Code Online (Sandbox Code Playgroud)

中间结果(a/b)是否像浮点数(0.33)或int(0因为舍入而)?我来自VB6世界,并且这个条件会评估为false,因为当分割两个整数时,中间结果也将是一个整数(并且0> 0 = false).

小智 8

除以两个整数会导致整数除法,即结果被截断.在这种情况下,它总是会计算为0.如果您希望结果为浮点值,则可以简单地将一个int除以一个浮点数,一个浮点数乘以一个int或两个浮点数.(可以通过将至少一个操作数转换为浮点类型来实现类似的行为.)

  • @Joshua不,`(浮动)(a/b)`只投射结果.你需要至少转换一个**操作数,**如`((float)a/b)`. (4认同)