这感觉就像一个愚蠢的问题,但我无法在Java文档中的任何地方找到答案。如果我宣布两个整数然后除以它们,到底发生了什么?它们首先被转换为floats/doubles
,被分割,然后被转换为integer
,还是被整体划分为“整数”?
另外,纯粹来自实验,整数除法似乎将答案舍入为零(即3/2 = 1
和-3/2 = -1
)。我是否正确地相信这一点?
答案 0 :(得分:12)
它们被划分为整数算术。因此,将整数a
除以整数b
,可以得出b
符合a
的次数。同样a % b
会给你一个分组的剩余部分。所以(a / b ) * b + a % b = a
答案 1 :(得分:2)
Java会自动转换类型:
"它会自动转换为双打。即使没有涉及整数,它也会将短路和字节自动转换为整数,当您想要进行短或字节算术时,需要持续的恼人转换。它将原语自动转换为包装器,反之亦然,用于装箱和自动装箱。" - user2357112
Java 从不在没有您指定的情况下投射任何内容。
但仍然是integer / integer = integer
。
此外,它总是截断结果。因此,如果结果为0.999999,则整数除法仍将返回0。