小编典典

float变量初始化java

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’可以在末尾用于浮点变量,但这是强制性的吗?


阅读 845

收藏
2020-11-26

共1个答案

小编典典

double除非您指定浮点文字只是s,否则它们将被视为floats。(类似地,int除非另有说明,否则整数文字是s。)将字母追加f到数字上使其成为a
float

float density = 20.0f;

JLS具有用于文字值的全面输入规则。不,你不必做字面floatf,但你必须与投它(float),如果你想以适应它的float变量,因为Java将不会自动尝试推一些一种类型的与变量较小的范围。

2020-11-26