Java问题:是否不允许将float声明为final?

时间:2019-04-03 18:39:12

标签: java compiler-errors syntax-error

在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标签,以便可以更轻松地找到此帖子吗?

1 个答案:

答案 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,是否设置小数点。

  

如果浮点文字以字母floatF结尾,则其类型为f;否则,其类型为double,并且可以选择以字母Dd结尾。

final float TESTVARIABLE = .5f;