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