以下代码段使我在第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’可以在末尾用于浮点变量,但这是强制性的吗?
double除非您指定浮点文字只是s,否则它们将被视为floats。(类似地,int除非另有说明,否则整数文字是s。)将字母追加f到数字上使其成为a float:
double
float
int
f
float density = 20.0f;
JLS具有用于文字值的全面输入规则。不,你不必做字面float用f,但你必须与投它(float),如果你想以适应它的float变量,因为Java将不会自动尝试推一些一种类型的与变量较小的范围。
(float)