如果我有类似的条件;
int a = 1;
int b = 3;
if ((a/b) > 0) ...
中间结果(a / b)是否像浮点数(0.33)或int(0因为四舍五入)一样?我来自VB6世界,并且这个条件将评估为假,因为当划分两个整数时,中间结果也将是整数(并且0> 0 =假)。
答案 0 :(得分:8)
除以两个整数会产生整数除法,i。即结果被截断。在这种情况下,它总是会计算为0.如果您希望结果为浮点值,则可以简单地将一个int除以一个浮点数,一个浮点数乘以一个int或两个浮点数。 (可以通过将至少一个操作数转换为浮点类型来实现类似的行为。)