では、Javaの数値リテラルに「型サフィックス」を付ける方法を、初心者向けにかみ砕いて、例題を交えて詳しく説明します。
1. 数値リテラルとは?
プログラムで使う数字(数値)を直接書いたものを「数値リテラル」と呼びます。
int x = 10; // 10 は整数リテラル
double y = 3.14; // 3.14 は浮動小数点リテラル
Java10は整数なので、Javaでは自動的にint型になります。3.14は小数なので、Javaでは自動的にdouble型になります。
2. 整数リテラルの型指定
Javaでは、整数リテラルは基本的に int として扱われます。
しかし int 型が扱える範囲(-2,147,483,648 ~ 2,147,483,647)を超える数を使いたい場合は、long 型を使う必要があります。
サフィックス L を付ける
long bigNumber = 2200000000L; // L を付けると long 型として扱われる
System.out.println(bigNumber);
JavaLを付けないとコンパイルエラーになります。- 小文字の
lも使えますが、数字の1と見分けにくいため、大文字Lを推奨。
例題1
int a = 2147483647; // OK
int b = 2147483648; // エラー!intの範囲を超えている
long c = 2147483648L; // OK
Java3. 浮動小数点数リテラルの型指定
小数(3.14など)は、デフォルトでは double 型です。
float型として使いたい場合は、末尾にFを付けます。
float f = 3.14F; // F を付けると float 型として扱われる
double d = 3.14; // デフォルトは double 型
Java例題2
float weight = 55.5F; // F が必要
double height = 170.2; // F は不要
Javaポイント:
floatはdoubleよりも容量が小さいので、小数点の精度が若干下がります。
4. 練習例題
問題1
次のコードでエラーになるものを直してください。
int x = 3000000000; // エラー
long y = 3000000000; // エラー
float z = 7.5; // エラー
Java回答例
long x = 3000000000L; // Lを付ける
long y = 3000000000L; // Lを付ける
float z = 7.5F; // Fを付ける
Java問題2
float と double の違いを意識して次のコードの出力を考えてみましょう。
float a = 1.2345678F;
double b = 1.23456789012345;
System.out.println(a);
System.out.println(b);
Javafloatは小数点以下 7 桁程度までしか正確に扱えません。doubleは小数点以下 15 桁程度まで扱えます。
出力例:
1.2345678
1.23456789012345
5. まとめ
- 整数リテラルは
intが基本。大きな数はLを付けてlongにする。 - 小数リテラルは
doubleが基本。floatにしたい場合はFを付ける。 - サフィックスを付けることで、数値の型を明示的に指定でき、間違いを防げる。
💡ポイント:
数字の後ろに L や F を付けるだけなので、とても簡単!
「大きな整数は L」「小数を float にしたいときは F」を覚えておけばOKです。
