Java の浮動小数点型プリミティブ・データタイプ

Java ではオブジェクトではない基本的なデータ型がいくつかあります。これを、プリミティブデータタイプ (primitive data types) といいます。

オブジェクトを生成するときは new というキーワードで作ります。しかし、プリミティブのデータタイプを使うときは、new を使う必要はありません。

浮動小数点を表す型として、次の2種類があります。

データ型 サイズ 意味 既定値
float4 [byte]単精度浮動小数点型
IEEE 754 に準拠
0.f
double8 [byte]倍精度浮動小数点型
IEEE 754 に準拠
0.0

この他、整数型として分類されているプリミティブデータタイプとしては char 型があります。char は整数型ですが文字を表します。文字を表すコードを整数値で保持しているために、文字も整数型になっています。 char 型については「Java の文字型 (char)」をみてください。

Java の浮動小数点型の既定値

Java の浮動小数点型の既定値は 0f (float)、 0.0 (double) として定義されています。 つまり、変数の初期化を行わない場合は、浮動小数点型の既定値は 0 になります。

Java の整数型変数の初期化

プリミティブデータタイプのローカル変数を使うときには、利用する前に初期化が必要です。初期化をしないままその変数を利用するコードパスがあると、コンパイル時にエラーとなります。

package com.keicode.java.test;

public class FloatTest {
    public static void main(String[] args) {
        float pi = 3.14f; // このように初期化が必要
        double e = 2.718;
        System.out.printf("pi = %f\n", pi); // pi = 3.140000
        System.out.printf(" e = %f\n", e);  //  e = 2.718000
    }
}

しかし、クラスのフィールドとする場合は明示的な初期化は不要です。

package com.keicode.java.test;

public class MyFloat {
    float f;

    public void printF() {
        System.out.printf("f=%f", f);
    }
}

こうして定義したMyFloat クラスのインスタンスを作成して printF() を呼ぶと f=0.000000 と出力されます。

Java の浮動小数点型の最大値と最小値

Float および Double データタイプラッパークラスには、最小値と最大値を表す定数として MIN_VALUEMAX_VALUE が定義されています。 例えば float 型の最大値は Float.MAX_VALUE として取得できます。

public class TestApp {
    public static void main(String[] args) {
        System.out.println("* Float");
        System.out.println(" Min: " + Float.MIN_VALUE);
        System.out.println(" Max: " + Float.MAX_VALUE);
        System.out.println("* Double");
        System.out.println(" Min: " + Double.MIN_VALUE);
        System.out.println(" Max: " + Double.MAX_VALUE);
    }
}

この実行結果は次のようになります。

* Float
 Min: 1.4E-45
 Max: 3.4028235E38
* Double
 Min: 4.9E-324
 Max: 1.7976931348623157E308

以上、Java の浮動小数点型について説明しました。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Java 入門