问题描述
double
除非您指定浮点文字只是s,否则它们将被视为float
s。(类似地,int
除非另有说明,否则整数文字是s。)将字母追加f
到数字上使其成为afloat
:
float density = 20.0f;
JLS具有用于文字值的全面输入规则。不,你不必做字面float
用f
,但你必须与投它(float)
,如果你想以适应它的float
变量,因为Java将不会自动尝试推一些一种类型的与变量较小的范围。
解决方法
以下代码段使我在第1行出现了编译器错误。
public abstract class xyz
{
float Gamma = 20.0; //Line 1
public class Alpha
{
void Beta()
{
System.out.println("this is atest");
}
}
}
abc0.java:5: error: possible loss of precision
float density = 20.0;
^
required: float
found: double
2 errors
据我了解,float用于十进制变量。
我是否遗漏了明显的东西,还是应该始终对小数变量初始化使用强制转换?
编辑:我知道’f’可以在末尾用于浮点变量,但这是强制性的吗?