中间舍入

时间:2013-01-20 14:53:35

标签: c c99

如果我有类似的条件;

int a = 1;
int b = 3;

if ((a/b) > 0) ...

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

1 个答案:

答案 0 :(得分:8)

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