作者:李永健
撰写时间:2019年 07月25日
开发工具与关键技术:MyEclipse10,java
从低级转换到高级图:
虚线说明可能会损失精度
例子:
public class jian14 {
public static void main(String[] args) {
//自动转换有以下规律:(隐式类型转换)
// boolean 类型是不可以转换为其他基本数据类型
//小的类型自动转化为大的类型,例如:
byte ss = 11;
char oo = 'a';
short ss1 = ss;
int ss2 = ss ;
int ss3 = oo ;
long ss4 =ss;
System.out.println("byte——>short= "+ss1);
System.out.println("byte——>int= "+ss2);
//字符可以自动提升为整数
System.out.println("char——>int= "+ss3);
System.out.println("byte——>long= "+ss4);
//整数类型可以自动转化为浮点类型,可能会产生舍入误差
// Float和Double提供了快速的运算,然而问题在于转换为二进制的时候,
//有些数字不能完全转换,只能无限接近于原本的值
System.out.println("<----------整型转换浮点型------------->");
int ff1 = 12;
float ff2 = ff1 - 11.9f;
double ff3 = ff1 - 11.8f;
System.out.println("int= "+ff1);
System.out.println("int——>float= "+ff2);
System.out.println("int——>double= "+ff3);
// 2、强制类型转换(显式类型转换)强制类型转换可能导致溢出或损失精度
//大的类型强制转化为小的类型,例如:
System.out.println("<---------强制转换--------->");
int bb = 120;
byte bb1 = (byte) bb;
System.out.println(bb1);
//损失精度
long nn = Long.MAX_VALUE;
double nn1 = nn;
System.out.println("long = "+nn);
System.out.println("long ——>double = "+nn1);
//浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入
int kk= (int) 25.24;
int kk1= (int) -44.24;
System.out.println(kk);
System.out.println(kk1);
}
}
结果图: