HOWTO · Java

Java での二重除算

整数-二重除算の混乱を解消する

このページの内容

ここで、このガイドでは、Java の二重除算で発生する混乱を解消します。これを完全に理解するには、Java のデータ型に精通している必要があります。次のルールを見てください。

  1. 2つの整数の間の算術演算は、出力として整数を返します。
  2. integer と double の間の算術演算では、double 値が返されます。

データ型 double は整数よりも優先順位が高いと言えます。したがって、double と integer を含む操作では、double 値が得られます。

Java の整数-二重除算

次のコードを見てください。

import java.util.*;
import javax.naming.spi.DirStateFactory.Result;
public class Main {
  public static void main(String args[]) {
    int x = 8;
    int y = 30;
    double z = y / x;
    System.out.println(z);
  }
}

このプログラムは出力として何を与えると思いますか?3.0 または 3.75。2つの整数を単純に除算し、出力として整数(この場合は 3)を与えるため、3.0 になります。この出力を double z に格納し、データ型が double であるため 3.0 になりました。

したがって、次のコードで実行できる正確な出力を得るには、キャストを適用する必要があります。

import java.util.*;
import javax.naming.spi.DirStateFactory.Result;
public class Main {
  public static void main(String args[]) {
    int x = 8;
    int y = 30;
    double z = (double) y / x;
    System.out.println(z);
  }
}

出力:

3.75

ここで、(double) は Java での型キャストに使用されます。そのため、y と x の両方が 2 倍になりました。除算後、出力は再び z を二重に格納します。これも二重です。したがって、出力は 3.75 になります。