-4

次の操作を実行すると、Java でコンパイル エラーが発生する理由を知りたいです。

double d34324.34; //error
float f3342.34; //error

一方で:

long L32423424; // works fine
double D32432424; // works fine

したがって、基本的には、浮動小数点値のみを使用する構文にこの制限がある理由を知りたいと思います。

文字識別子 (D、d、F、f) が数値の末尾に配置されている場合は機能することを認識していますが、他の形式が浮動小数点で機能しない理由を知りたいです。ただの好奇心ですが、3443.43434f と入力すると機能することがわかります。

4

4 に答える 4

13
double d34324.34

の値を割り当てませんが34324.34、無効な名前で変数を宣言しようとしますd4324.34

あなたはおそらく欲しかった

double myDouble = 34324.34d;
long myLong = 34324l;
于 2013-02-18T14:20:09.340 に答える
8

ドットは、識別子 (変数名、メソッド名、クラス名、パラメーター名など) の有効な文字ではありません。Java 言語仕様のセクション 3.8 に記載されています。したがって、これは決して機能しません:

double d34324.34;  // error
float f3342.34;    // error

Java の有効な識別子には、文字、数字、「_」および「$」のみを含めることができ、数字で開始することはできません。これにはドットが含まれていないことに注意してください。

そして、なぜ変数に番号を付けたいのでしょうか? 代わりに、このようなことを意味していませんか?:

double d = 34324.34;
float  f = 3342.34f;
于 2013-02-18T14:19:18.290 に答える
2

これは、無効な変数宣言 (構文エラー) であるためです。文字、数字、およびアンダースコアのみを使用できます。数字で始めることはできません

Java で有効な変数名については、これを参照してください。

変数名には、任意の英字または数字とアンダースコア _ を含めることができます。変数に付けることができる名前の主な制限は、空白を含めることはできないということです。変数名を数字で始めることはできません。

于 2013-02-18T14:20:08.243 に答える