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。從數學上講,當我們將十除以九時,這將導致重複數字 1.1111...。但是在 Java 語言中,當一個整數除以另一個整數時,它將丟棄餘數並保留商。因此,結果輸出為整數。
  2. 在情況 2 中,當我們將負整數除以正整數時,這將導致整數成為 -1。如上所述,整數會丟棄餘數並保留商。因此,結果值為負整數。
  3. 在情況 3 中,存在相反的情況,其中分子是正整數,而分母是負整數。結果輸出為 -1。同樣,分子或分母中的負號無關緊要。它只是簡單地將兩個數字相除而不保留​​任何餘數。因此,輸出再次是整數的取反。
  4. 在情況 4 中,分母大於分子,這導致數字小於 1。如上所述,數字將在零後截斷並輸出值0 作為其輸出。
  5. 在情況 5 中,我們將輸出手動型別轉換為 float 值。

首先讓我們瞭解型別轉換。

型別轉換是將一種資料型別轉換為另一種資料型別的過程,我們可以手動或自動進行。

  1. 拓寬型別轉換:通常稱為隱式轉換。在這種型別的轉換中,較小的資料型別將轉換為較高的資料型別。編譯器會自動執行此轉換。
  2. 縮小型別轉換:通常稱為顯式轉換。在這種型別的轉換中,較大的資料型別將轉換為某些較小的資料型別,從而導致資料丟失。

因此,在第 3 種情況下,編譯器隱式截斷的資料將被手動強制轉換為浮點數,從而形成一個完整的有理數。該數字最多顯示 8 位資料。

同樣,在情況 6 中,我們將手動將整數除法轉換為 double 值。因此,這將導致十進位制數字顯示最多 16 位數字。

上述程式碼的輸出請參考以下部分。

1
-1
-1
0
1.1111112
1.1111111111111112

相關文章 - Java Integer

  • 在 Java 中檢查輸入是否為整數