0

如果我有这样的情况;

int a = 1;
int b = 3;

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

中间结果 (a/b) 是否像浮点数 (0.33) 或 int (0 因为舍入) 受到威胁?我来自 VB6 世界,这种情况的计算结果为假,因为当两个整数相除时,中间结果也将是一个整数(并且 0 > 0 = 假)。

4

1 回答 1

8

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

于 2013-01-20T14:55:04.693 回答