HOWTO · Java
Java 中的整数除法
本文介绍了 Java 中整数除法是如何发生的。
本文详细介绍了当我们将两个整数相除时内部会发生什么。
在下面的 Java 代码中,有四个 Java 语句。每行根据彼此相除的数字打印不同的输出。
package integer_division;
public class IntegerDivision {
public static void main(String[] args) {
System.out.println(10 / 9);
System.out.println(-10 / 9);
System.out.println(10 / -9);
System.out.println(10 / 19);
System.out.println((float) 10 / 9);
System.out.println((double) 10 / 9);
}
}
- 在情况 1 中,较大的整数除以较小的整数。结果输出为整数
1。从数学上讲,当我们将十除以九时,这将导致重复数字1.1111...。但是在 Java 语言中,当一个整数除以另一个整数时,它将丢弃余数并保留商。因此,结果输出为整数。 - 在情况 2 中,当我们将负整数除以正整数时,这将导致整数成为
-1。如上所述,整数会丢弃余数并保留商。因此,结果值为负整数。 - 在情况 3 中,存在相反的情况,其中分子是正整数,而分母是负整数。结果输出为
-1。同样,分子或分母中的负号无关紧要。它只是简单地将两个数字相除而不保留任何余数。因此,输出再次是整数的取反。 - 在情况 4 中,分母大于分子,这导致数字小于
1。如上所述,数字将在零后截断并输出值0作为其输出。 - 在情况 5 中,我们将输出手动类型转换为
float值。
首先让我们了解类型转换。
类型转换是将一种数据类型转换为另一种数据类型的过程,我们可以手动或自动进行。
- 拓宽类型转换:通常称为
隐式转换。在这种类型的转换中,较小的数据类型将转换为较高的数据类型。编译器会自动执行此转换。 - 缩小类型转换:通常称为
显式转换。在这种类型的转换中,较大的数据类型将转换为某些较小的数据类型,从而导致数据丢失。
因此,在第 3 种情况下,编译器隐式截断的数据将被手动强制转换为浮点数,从而形成一个完整的有理数。该数字最多显示 8 位数据。
同样,在情况 6 中,我们将手动将整数除法转换为 double 值。因此,这将导致十进制数字显示最多 16 位数字。
上述代码的输出请参考以下部分。
1
-1
-1
0
1.1111112
1.1111111111111112