Java 中的整数除法

Integer division in Java

这感觉像是一个愚蠢的问题,但我无法在 Java 文档中的任何地方找到答案。如果我声明两个整数然后将它们相除,到底发生了什么?它们是先转换为 floats/doubles,除以,然后转换回 integer,还是除法 "done" 作为整数?

此外,纯粹从实验来看,整数除法似乎将答案四舍五入为零(即 3/2 = 1-3/2 = -1)。我相信这个是对的吗?

它们被划分为整数运算。因此,将整数 a 除以整数 b 得到 b 适合 a 的次数。另外 a % b 会给你一个除法的余数。所以(a / b ) * b + a % b = a

Java 自动转换类型:

"It autoconverts ints to doubles. It autoconverts shorts and bytes to ints even when no ints are involved, requiring constant annoying casts when you want to do short or byte arithmetic. It autoconverts primitives to wrappers and vice versa for boxing and autoboxing." -

Java 从不 在您未指定的情况下投射任何内容。

但还是integer / integer = integer

此外,它确实总是截断结果。因此,如果结果为 0.999999 作为浮点数,整数除法仍将 return 0.