Java の浮動小数点および倍精度データ型

Rupam Yadav 2023年10月12日
Java の浮動小数点および倍精度データ型

Float および double データ型は、Java で実数または浮動小数点数を格納するために使用されますが、double データ型は float よりも正確です。double は、浮動小数点数のデフォルトのデータ型です。

浮動小数点数を正確に格納するには

float は 32 ビットの IEEE754 浮動小数点であり、double は 64 ビットの IEEE754 浮動小数点です。フロートは、ダブルに比べて範囲が狭くなります。

以下の例では、double データ型の d があります。これは、2つの double 変数 d1d2 を除算することによって取得されます。同様に、2つの float 変数 f1f2 を分割すると、f1 が得られます。double の場合、接尾辞 d または D を使用する必要はありませんが、float タイプのデータの場合、デフォルトで接尾辞 f または F を使用する必要があります。Java では、数値は double と見なされます。

出力では、double 変数 d の精度と精度が float 変数 f よりも高いことがわかります。doublefloat よりも大きいデータ型であることがわかっているため、ダウンキャストする必要があります。doublefloat にタイプキャストするには、10 進値の前に括弧で囲まれた float キーワードを指定する必要があります。

double 変数を float に変換すると、大きなデータ型を小さなデータ型に格納するため、データと精度が失われることが出力に表示されます。したがって、double は倍精度浮動小数点数を格納するためにより多くのメモリを必要とし、正確な結果を提供します。

public class Test {
  public static void main(String args[]) {
    double d1 = 10.0;
    double d2 = 3.0;
    double d = d1 / d2;
    System.out.println("double d : " + d);

    float f1 = 10.0f;
    float f2 = 3.0f;
    float f = f1 / f2;
    System.out.println("float f : " + f);

    float f3 = (float) d;
    System.out.println("float f3 : " + f3);

    double d3 = f;
    System.out.println("double d3 : " + d3);
  }
}

出力:

double d : 3.3333333333333335
float f : 3.3333333
float f3 : 3.3333333
double d3 : 3.3333332538604736

2つのデータ型の違いは、特定の表形式のデータで説明できます。

データ・タイプ 精度 サイズ Default データ・タイプ デフォルト値 サフィックス ラッパークラス データの損失 キーワード
浮く 単精度(10 進数で 6〜7 桁) 32 ビット No 0.0f f または F を使用します。デフォルトでは浮動小数点数は明示的に double として扱われるため、この接尾辞を追加する必要があります。 java.lang.Float float を double に変換するときにデータが失われることはありません キーワード float は float 型に使用されます
ダブル 倍精度(10 進数の 15〜16 桁) 64 ビット Yes 0.0d d または D を使用します。接尾辞を使用する場合はオプション java.lang.Double double を float に変換するときのデータ損失 キーワード double は、倍精度数を定義するために使用されます

Float と double は、実数を表すために使用されます。どちらのデータ型も正確ではありません。おおよそのタイプです。正確で正確な結果が必要な場合は、2 倍にする必要があります。メモリとスペースの制約がある場合は、float を検討する必要があります。

著者: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

関連記事 - Java Double

関連記事 - Java Float