F和D在数字文字的末尾是什么意思?

Ben*_* C. 42 java floating-point double

我见过一些这样的符号,但我找不到任何奇怪的东西,

double d = 5D;
float f = 3.0F;
Run Code Online (Sandbox Code Playgroud)

5后面的D和F究竟意味着什么?

Ebo*_*ike 50

意味着这些数字分别是双倍和浮动.假设你有

void foo(int x);
void foo(float x);
void foo(double x);
Run Code Online (Sandbox Code Playgroud)

然后你打电话

foo(5)
Run Code Online (Sandbox Code Playgroud)

编译器可能会被难倒.这就是为什么你可以说5,5f5.0指定类型.

  • 有了这个,是 5.0 == 5d? (2认同)

Jas*_*ers 19

D代表双倍

F代表浮动

你可以在这里阅读java的基本原始类型

http://download.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

我想指出写作

5.1D或5.1:如果您没有为逗号编号指定类型字母,则默认为双精度型号

5:没有句点,默认情况下是int


Jef*_*eff 6

它们是float和double literals的格式说明符.当你写作时1.0,你是否想要文字是浮点数还是双数字是不明确的.通过写1.0f,你告诉Java你打算将文字作为一个浮点数,而使用1.0d指定它应该是一个双精度浮点数.还有L,代表长(例如,1Llong1,而不是int1)

  • 澄清一下:javac并不含糊,只有潜在的经验不足的程序员.JLS说没有后缀的`1.0`是双倍的. (3认同)