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

时间:2010-12-02 02:42:14

标签: java floating-point double

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

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

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

6 个答案:

答案 0 :(得分:45)

表示这些数字分别是双精度数和浮点数。假设你有

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

然后你打电话

foo(5)

编译器可能会被难倒。这就是为什么您可以说55f5.0来指定类型。

答案 1 :(得分:18)

D代表双

F for float

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

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

我想指出写作

5.1D或5.1:如果您没有为逗号编号指定类型字母,那么默认情况下它是双倍的

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

答案 2 :(得分:6)

它们是float和double文字的格式说明符。当你写1.0时,你是否打算将文字作为浮点数或双精度数是不明确的。通过编写1.0f,您告诉Java您希望文本是浮点数,而使用1.0d指定它应该是double。还有L,代表很长(例如,1Llong 1,而不是int 1)

答案 3 :(得分:2)

D代表double,F代表float。您偶尔需要添加这些修饰符,因为在这种情况下5被视为整数,而3.0是双精度。

答案 4 :(得分:0)

正如其他人提到的那样,它们是类型定义,但是你不太可能看到我或者提到,因为这些是默认值。

float myfloat = 0.5; 

会出现错误,因为0.5是默认值的双倍,你不能自动降低从double到float(64 - > 32位),但是

double mydouble = 0.5;

没有问题

答案 5 :(得分:-1)

它定义常量5和3.0的数据类型。