Javaの小数を扱う変数型のfloat型
とdouble型
の違いについてまとめていきます。
どちらの型も、浮動小数点数を表します。2つの型の違いとして、値の範囲が挙げられます。
float型
は32ビット単精度浮動小数点数であることに対し、double型
は64ビット倍精度浮動小数点数になります。よって、double型
の方がより広い範囲の数を扱うことができます。
小数を扱う場合、昔では使われるメモリの大きさが限られていた場合にfloat型
が採用されることがありましたが、現在では基本的には範囲が広いdouble型
を使われることが多いです。
float型
の変数を宣言する時は、末尾にf
かF
を付けてfloat型
であることを示す必要があります。
1float num = 1.0f;
2つの型の範囲をそれぞれ示します。
型 | サイズ | 範囲 |
---|---|---|
float | 32ビット(4バイト) | \(\pm3.4028235\times10^{38}\) ~ \( \pm1.4\times10^{-45}\) |
double | 64ビット(8バイト) | \(\pm1.7976931348623157\times10^{308}\) ~ \( \pm4.9\times10^{-324}\) |
2つの型を比べると、double型
の方が取り扱う範囲が格段に広いことがわかります。
実際にそれぞれの値の範囲をサンプルコードで出力してみます。
1public class DoubleFloatMaxMinTest {
2 public static void main(String[] args) {
3 // double型の最大値と最小値
4 System.out.println("double型の最大値:" + Double.MAX_VALUE);
5 System.out.println("double型の最小値:" + Double.MIN_VALUE);
6 // float型の最大値と最小値
7 System.out.println("float型の最大値:" + Float.MAX_VALUE);
8 System.out.println("float型の最小値:" + Float.MIN_VALUE);
9 }
10}
実行結果が以下になります。
1double型の最大値:1.7976931348623157E308
2double型の最小値:4.9E-324
3float型の最大値:3.4028235E38
4float型の最小値:1.4E-45
先ほどの表と同じ結果が出力されました。
今回は今回はJavaの小数型の違いについてまとめました。以上で記事を終わりにします。