HOWTO · Java
Java での二重除算
整数-二重除算の混乱を解消する
このページの内容
ここで、このガイドでは、Java の二重除算で発生する混乱を解消します。これを完全に理解するには、Java のデータ型に精通している必要があります。次のルールを見てください。
- 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 になります。