Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如果我有这样的情况;
int a = 1; int b = 3; if ((a/b) > 0) ...
中间结果 (a/b) 是否像浮点数 (0.33) 或 int (0 因为舍入) 受到威胁?我来自 VB6 世界,这种情况的计算结果为假,因为当两个整数相除时,中间结果也将是一个整数(并且 0 > 0 = 假)。
将两个整数相除会导致整数除法,即结果被截断。在这种情况下,它的计算结果总是为 0。如果您希望结果为浮点值,您可以简单地将一个 int 除以一个浮点数、一个浮点数除以一个整数或两个浮点数。(可以通过将至少一个操作数转换为浮点类型来实现类似的行为。)