Javaのint
とdouble
は、どちらもプリミティブ型と呼ばれる基本的なデータ型ですが、扱うデータの種類と範囲、そしてメモリの使用量が大きく異なります。
データの種類と範囲
int
- 整数のみを扱います。小数点を持ちません。
- 32ビットの符号付き整数であり、約-21億から+21億までの範囲の整数を表現できます。
- 正確な整数値を扱う必要がある場合に使用します。例えば、年齢、個数、配列のインデックスなどに適しています。
double
- 浮動小数点数を扱います。つまり、小数点を持つ数値を表現できます。
- 64ビットの倍精度浮動小数点数であり、非常に広い範囲の数値を表現できます。
- 小数を含む数値や、非常に大きな数値、非常に小さな数値を扱う必要がある場合に使用します。例えば、金額、温度、科学計算などに適しています。
メモリの使用量
- int: 32ビット(4バイト)のメモリを使用します。
- double: 64ビット(8バイト)のメモリを使用します。
double
はint
よりも広い範囲の数値を表現できますが、より多くのメモリを使用します。
精度の違い
- int: 整数を正確に表現します。
- double: 浮動小数点数を近似的に表現します。そのため、計算結果にわずかな誤差が生じる可能性があります。
型変換
int
からdouble
への変換は、自動的に行われます(暗黙的な型変換)。これは、double
がint
よりも広い範囲の数値を表現できるため、情報の損失がないからです。double
からint
への変換は、明示的な型変換(キャスト)が必要です。この場合、小数点以下が切り捨てられるため、情報の損失が発生する可能性があります。
まとめ
特徴 | int | double |
データの種類 | 整数 | 浮動小数点数 |
範囲 | 約-21億~+21億 | 非常に広い範囲 |
メモリ使用量 | 32ビット | 64ビット |
精度 | 正確 | 近似値(誤差の可能性あり) |
どちらのデータ型を使用するかは、扱うデータの種類と範囲、そして必要な精度によって決まります。
コメント