在Java中不允许使用float作为final声明变量吗?
(顺便说一下,使用JDK 1.8.0.201)
final float TESTVARIABLE = .5;
预期:应该允许使用浮点数,因为我只需要一个大小适合浮点数的内存空间
错误:
Required: float
Found: double
实际:
final double TESTVARIABLE = .5;
double变量类型有效,但float变量类型无效。
编辑: 这是在询问错误,以及为什么会弹出错误。
这也在询问是否可以将float声明为final。
(这仅适用于那些刚开始使用Java并且不知道如何解决的人 CS老师不知道如何解决的错误。)
(是的,我知道这是重复的,但这是我想到的最好的解释方式。)
你们可以制作一个java-errors标签,以便可以更轻松地找到此帖子吗?
答案 0 :(得分:2)
与final
无关。当您键入.5
时,它是一个double
文字,但是您试图将其分配给float
。这就是导致错误的原因。
float TESTVARIABLE = .5; // error even without final
放置f
or F
suffix on the numeric literal to make it a float
literal,是否设置小数点。
如果浮点文字以字母
float
或F
结尾,则其类型为f
;否则,其类型为double
,并且可以选择以字母D
或d
结尾。
final float TESTVARIABLE = .5f;