类型转换分类
- 自动转换(或隐式转换、或向上转换)
- 强制转换(或向下转换)
Ps:float -> double,个人认为应该是虚线,比如:double d = 1.23f; 输出:1.2300000190734863
// 强制转换:longc=10000000000L; // 100亿intrs5=(int)c; // 强转可能发生溢出System.out.println(rs5); // 1410065408doubled=1.23e5; // 123000.0floatf=1.23E5f; // 123000.0doubled1=.2; // 0.2floatf1=1.2; // CEdoubled2=1.23f; // 1.2300000190734863doubled3=123L; // 123.0 Ps:long<double (即使long和double都是8字节)(double是在基本数据类型中最大的类型) // long b=10000000000; // 编译错误,右边的 100 亿默认为 int 类型,但超出 int 范围了,所以会报错,表示 long 需要加 Ldoubled=56.89895514545787878; inti=(int)d; floatf=(float)d; System.out.println(i); // 56System.out.println(f); // 56.898956// 对于一个变量进行数据类型转换是取决于该变量的数据类型而不是该变量的值。// 科学记数法floatf=100000000000000L; // 1.0E14floatf1=103948583923948L; // 1.03948585E14// 判断 int charinta=65; charc='A'; System.out.println(a==c); // true, 并不会报错,但跟类型转换是两码事// 方法返回值与返回类型的自动类型转换publicdoublefun () { return1.0f; } // 方法参数中也支持自动类型转换(向上转换)publicvoidfun (Animalobj) { } // 前提 Cat extends AnimalCatcat=newCat(); test.fu(cat);

