【Java】浮動小数点数のfloat型とdouble型の違いとは?

【Java】浮動小数点数のfloat型とdouble型の違いとは?プログラミングの知識
プログラミングの知識

今回はJavaの小数を扱う変数型のfloat型double型の違いについてまとめていきます。

スポンサーリンク

float型とdouble型の違い

float型double型も、浮動小数点数を表します。2つの型の違いとして、値の範囲が挙げられます。

float型は32ビット単精度浮動小数点数であることに対し、double型は64ビット倍精度浮動小数点数になります。よってdouble型の方がより広い範囲の数を扱うことができます。

小数を扱う場合、メモリの大きさが限られていた昔ではfloat型が採用されることがありましたが、現在では基本的には範囲が広いdouble型を使われることが多いです。

float型の変数を宣言する時は、末尾にfFを付けてfloat型であることを示す必要があります。

// float型の変数宣言
float num = 1.0f;

2つの型の範囲

float型とdouble型の範囲をそれぞれ示します。

サイズ範囲
float32ビット(4バイト)\(\pm3.4028235\times10^{38}\) ~ \( \pm1.4\times10^{-45}\)
double64ビット(8バイト)\(\pm1.7976931348623157\times10^{308}\) ~ \( \pm4.9\times10^{-324}\)
2つの型の範囲

float型double型を比べると、double型の方が取り扱う範囲が格段に広いことがわかります。実際にそれぞれの値の範囲をサンプルコードで出力してみましょう。

  • サンプルコード
public class DoubleFloatMaxMinTest {
  public static void main(String[] args) {
    // double型の最大値と最小値
    System.out.println("double型の最大値:" + Double.MAX_VALUE);
    System.out.println("double型の最小値:" + Double.MIN_VALUE);
    // float型の最大値と最小値
    System.out.println("float型の最大値:" + Float.MAX_VALUE);
    System.out.println("float型の最小値:" + Float.MIN_VALUE);
  }
}
  • 出力結果
double型の最大値:1.7976931348623157E308
double型の最小値:4.9E-324   
float型の最大値:3.4028235E38
float型の最小値:1.4E-45

先ほどの表と同じ結果が出力されました。以上で記事を終わりにします。

参考文献

スポンサーリンク
Dim雑記