Java の浮動小数点および倍精度データ型
Float および double データ型は、Java で実数または浮動小数点数を格納するために使用されますが、double データ型は float よりも正確です。double
は、浮動小数点数のデフォルトのデータ型です。
浮動小数点数を正確に格納するには
float
は 32 ビットの IEEE754 浮動小数点であり、double は 64 ビットの IEEE754 浮動小数点です。フロート
は、ダブルに比べて範囲が狭くなります。
以下の例では、double
データ型の d
があります。これは、2つの double
変数 d1
と d2
を除算することによって取得されます。同様に、2つの float
変数 f1
と f2
を分割すると、f1
が得られます。double
の場合、接尾辞 d
または D
を使用する必要はありませんが、float
タイプのデータの場合、デフォルトで接尾辞 f
または F
を使用する必要があります。Java では、数値は double
と見なされます。
出力では、double
変数 d
の精度と精度が float
変数 f
よりも高いことがわかります。double
は float
よりも大きいデータ型であることがわかっているため、ダウンキャストする必要があります。double
を float
にタイプキャストするには、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 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 で Int を Double に変換する
- Java で Doubles を比較する
- Java でのダブル
- Java で long を double に変換する
- Java で Double を文字列に変換する