「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Long 変数を使用しているにもかかわらず、Java コードで「整数リテラルが範囲外です」エラーがスローされるのはなぜですか?

Long 変数を使用しているにもかかわらず、Java コードで「整数リテラルが範囲外です」エラーがスローされるのはなぜですか?

2024 年 11 月 13 日に公開
ブラウズ:801

Why does my Java code throw an \

データ型とエラー処理について

コード内で、testLong という名前の長い変数を宣言し、それに値 9223372036854775807 を割り当てようとしました。ただし、リテラルが int 型の範囲外であることを示すエラーが発生しました。

データ型の役割

Java の各データ型は、値の範囲が異なります。 long データ型は、-9,223,372,036,854,775,808 から 9,223,372,036,854,775,807 までの整数値を保持できます。試行した値はこの範囲内にあります。

エラーの特定

受け取ったエラー メッセージは、コンパイラがリテラル 9223372036854775807 を int 型として解釈していることを示しています。値の範囲が小さくなります。この解釈は、リテラルの末尾に文字「L」がないことが原因で発生します。

コードの修正

この問題を解決するには、明示的に次のことを行う必要があります。リテラルがlong型であることを指定します。これは、以下に示すように、リテラルの末尾に文字「L」を追加することで実行できます。

long testLong = 9223372036854775807L;

この変更により、コンパイラは正しく動作します。リテラルをlong値として解釈し、それをtestLong変数に割り当てます。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3