web-dev-qa-db-ja.com

数値リテラルの末尾のFとDはどういう意味ですか?

私はこのシンボルのいくつかを見ましたが、私はそれで奇妙な何かを見つけることができません、

double d = 5D;
float f = 3.0F;

5の背後にあるDとFの正確な意味は何ですか?

40
Ben C.

これらの数値がそれぞれdoubleとfloatであることを意味します。あなたが持っていると仮定します

void foo(int x);
void foo(float x);
void foo(double x);

そして、あなたは電話する

foo(5)

コンパイラーが停止する可能性があります。そのため、55f、または5.0と言ってタイプを指定できます。

47
EboMike

Dはダブルを表します

Fはフロート

Javaここの基本的なプリミティブ型を読むことができます

http://download.Oracle.com/javase/tutorial/Java/nutsandbolts/datatypes.html

その書き込みを指摘したいと思います

5.1Dまたは5.1:コンマ番号にタイプ文字を指定しない場合、デフォルトではダブルです

5:ピリオドなし、デフォルトではint

19
Jason Rogers

これらは、floatおよびdoubleリテラルの形式指定子です。 1.0、リテラルをfloatにするかdoubleにするかはあいまいです。 1.0f、Javaは、リテラルを浮動小数点にすることを意図しているが、1.0dは、doubleであることを指定します。また、長さを表すLもあります(例:1Llong 1ではなく、int 1です

6
Jeff

Dはdoubleを表し、Fはfloatを表します。この場合5は整数と見なされ、3.0はdoubleであるため、これらの修飾子を追加する必要がある場合があります。

2
Ronnie Howell

定数5および3.0のデータ型を定義します。

0
Joshua Martell

他の人が述べたように、それらはタイプ定義ですが、これらはデフォルトであるため、言及されたiまたはdはほとんどありません。

float myfloat = 0.5; 

0.5はデフォルトでdoubleであり、doubleからfloat(64-> 32ビット)に自動ボックス化することはできないため、エラーになりますが、

double mydouble = 0.5;

問題ないだろう

0
Theresa Forster