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
1.1111112
1.1111111111111112
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。