Java 中的整數除法

Rashmi Patidar 2021年4月29日
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
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

相關文章 - Java Integer