我见过一些这样的符号,但我找不到任何奇怪的东西,
double d = 5D;
float f = 3.0F;
5后面的D和F究竟意味着什么?
答案 0 :(得分:45)
表示这些数字分别是双精度数和浮点数。假设你有
void foo(int x);
void foo(float x);
void foo(double x);
然后你打电话
foo(5)
编译器可能会被难倒。这就是为什么您可以说5
,5f
或5.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
,代表很长(例如,1L
是long
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的数据类型。