1

私は宿題をしていて(私は嘘をつく人ではありません)、質問に正直に困惑しています。私は 3 年間のプログラミング経験がありますが、クラスの最も単純な問題のいくつかに困惑しています (笑)。Java は初めてですが、プログラミングは初めてではありません。質問がなぜ答えをもたらすのか、そしてなぜそれが何らかの形で起こるのかについて議論したいと思います。

1) 3.4 と書いてください。これは double または float ですか?

double (64) ビットよりも少ないスペース (32 ビット) を占めるため、デフォルトでは float と言いたいです。3.4 は小さい数値なので、浮動小数点数だと思いますか?

2) x を double として宣言し、値 3.4 を割り当てます (double として)。

double x = 3.4d;これについては100%確実ではないと思います

3) y を float として宣言し、値 3.4 を (float として) 割り当てます。

上記と同様に、私はそれがあると思いますfloat y = 3.4f;

通常、ここに来て、このように HW のヘルプを求める人はいません...しかし、注文したばかりなので、もう 1 週間は教科書がありません。Javaがどのように機能するかをよりよく理解できるように、なぜそれが何らかの形で行われるのかを議論したいと思います. ありがとう。

4

6 に答える 6

2

最初の質問で3.4は、doubleです。floatリテラルが必要な場合は、 を使用します3.4f


2 番目の質問:

double x = 3.4; // trailing D/d is optional and rarely used.

3 番目の質問、あなたは正しいです。それを宣言し、リテラルで接尾辞floatを使用します。f


詳細については、ここを参照してください。具体的には、Floating-Point Literalsここにコピーされた というタイトルのセクションを強調するために若干の変更を加えてあります。

浮動小数点リテラルは、文字 F または f で終わる場合、float 型です。それ以外の場合、その型は double であり、オプションで文字 D または d で終わることができます。

浮動小数点型 (float および double) は、Eまたはe (科学表記法)、Fまたはf (32 ビット float リテラル)、およびDまたはd (64 ビット double リテラル) を使用して表現することもできます。これがデフォルトであり、規約は省略)。

double d1 = 123.4;
double d2 = 1.234e2; // same value as d1, but in scientific notation
float f1  = 123.4f;
于 2013-04-03T05:13:15.367 に答える
1
  1. 3.4 は double で、f後に a を付けて float を取得します。
  2. ;正解ですが、行末にa を入れることを忘れないでください。
  3. 同上。
于 2013-04-03T05:13:23.390 に答える
0
  1. デフォルトでは、java は float リテラルを double と見なします。したがって、3.4 は 2 倍です。
  2. ダブル x = 3.4;
  3. あなたが書いたことは正しいです。
于 2013-04-03T05:14:33.373 に答える
0

d修飾子を指定した場合と同様に、Java float リテラルはデフォルトで double です。32 ビット浮動小数点数が必要な場合は、f修飾子を明示的に指定する必要があります。

于 2013-04-03T05:14:13.300 に答える
0

float の場合は、このように宣言する必要があることを意味します。 float y = 3.4* f * .f は、float であることを jvm に示します。f (3.4f) を忘れると、デフォルトで double として扱われ、64 ビットが必要になります。

于 2013-04-03T05:19:02.223 に答える