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

Javaの小数を扱う変数型のfloat型とdouble型の違いについてまとめていきます。
float型とdouble型の違い
どちらの型も、浮動小数点数を表します。2つの型の違いとして、値の範囲が挙げられます。
float型は32ビット単精度浮動小数点数であることに対し、double型は64ビット倍精度浮動小数点数になります。よって、double型の方がより広い範囲の数を扱うことができます。
小数を扱う場合、昔では使われるメモリの大きさが限られていた場合にfloat型が採用されることがありましたが、現在では基本的には範囲が広いdouble型を使われることが多いです。
float型の変数を宣言する時は、末尾にfかFを付けてfloat型であることを示す必要があります。
float型の変数宣言
1float num = 1.0f;2つの型の範囲
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型の方が取り扱う範囲が格段に広いことがわかります。
値の範囲を出力してみる
実際にそれぞれの値の範囲をサンプルコードで出力してみます。
DoubleFloatMaxMinTest.java
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の小数型の違いについてまとめました。以上で記事を終わりにします。