Java基本数据类型 float x = 3.0报错

public class str 
{
    public static void main(String[] args)
    {
        float x = 3.0;
        System.out.println(x);
    }
}

报错:Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Type mismatch: cannot convert from double to float
at str.main(str.java:6)
可以解释一下原理吗?

原理就是你要想表示float类型的数, 需要在 后面加 f 比如 float x = 3.0 f; 如果不加 f JVM会认为 3.0是一个double类型的数,