ホームページ  >  記事  >  Java  >  私の長い値が「範囲外」エラーをスローするのはなぜですか?

私の長い値が「範囲外」エラーをスローするのはなぜですか?

DDD
DDDオリジナル
2024-10-31 03:33:01162ブラウズ

Why Does My Long Value Throw an

Long データ型の謎: 「範囲外」エラーを解明する

Java でデータ型を扱う場合、それぞれの値の範囲を遵守することが重要です。特にロングは、-9,223,372,036,854,775,808 から 9,223,372,036,854,775,807 までの驚異的な範囲を誇ります。ただし、適切な構文に従わない場合、複雑なエラーが発生する可能性があります。

コード スニペットで示されているように、値 9223372036854775807 を testLong という名前の長い変数に割り当てようとしました。しかし、コンパイラは、「int 型のリテラル 9223372036854775807 は範囲外です。」というメッセージで警告的に応答しました。

この矛盾したエラーは、コンパイラがリテラルを int データ型として誤って解釈したことに起因します。値の範囲がはるかに小さくなります。この誤解を正すには、簡単な調整が必要です。リテラルの末尾に大文字の L を追加すると、コンパイラにそれを long として扱うよう指示します。

long value = 9223372036854775807L;

この微妙な調整を組み込むことにより、割り当てられた値は、long データ型の許容範囲内にシームレスに収まります。 。このサフィックスが存在しないと、コンパイラーがリテラルを int と誤認し、恐ろしい「範囲外」エラーが発生することに注意してください。

以上が私の長い値が「範囲外」エラーをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。