int类型强制转化为float类为啥给我一个double的值

public class Java_Page_56
{
    public static void main(String[] args)
    {
int a=1234567890;
float A=(float)a;
System.out.println("2 a="+a+"\t\t2 A="+A);
//出现A=1.23456794E9的情况

double B=1.23456794E9;
//创建float B时报错
System.out.println("B="+B);
    }
}



打印结果:
2 a=1234567890 2 A=1.23456794E9
B=1.23456794E9

浮点数计数不精确,这个不是double类型 是科学计数法,E9代表10的9次方

了解下 科学计数法