Java中的整数除法

时间:2016-06-13 16:55:08

标签: java

这感觉就像一个愚蠢的问题,但我无法在Java文档中的任何地方找到答案。如果我宣布两个整数然后除以它们,到底发生了什么?它们首先被转换为floats/doubles,被分割,然后被转换为integer,还是被整体划分为“整数”?

另外,纯粹来自实验,整数除法似乎将答案舍入为零(即3/2 = 1-3/2 = -1)。我是否正确地相信这一点?

2 个答案:

答案 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。