基本数据类型的转换
小精度转大精度直接转
大精度转小精度,强制转化,当大精度表示的值大于小精度能表示的最大精度时,会产生精度丢失
/**
* 精髓:看数据类型的大小
* 浮点型比整型大
* @author Administrator
*
*/
public class _基本数据类型转换 {
public static void main(String[] args) {
//隐式转换 :小精度--大精度
short s1=321;
int i1=s1;
System.out.println("i1:"+i1);//i1:321
byte b1=23;
short s2=b1;
System.out.println("s2:"+s2);//s2:23
// int和float之间转换:int--float
float f1=i1;
//long<float
float f3=1231L;
double d1=123L;
System.out.println("f3:"+f3);//f3:1231.0
System.out.println("d1:"+d1);//d1:123.0
//显示转换(强制转换) :强制转换,大精度--小精度,需要注意当大精度数据中的值大于小精度能够接受的最大范围会出现精度丢失
int i2=10;
byte b2=(byte) i2;
System.out.println(b2);//10
int i3=129;
byte b3=(byte)i3;
System.out.println(b3);//-127
//double --float
float f2=(float) 123.45;
System.out.println(f2);//123.45
//float--int
int i4=(int) 1945.5F;
int i5=(int) 1945.9F;
System.out.println(i4);//1945
System.out.println(i5);//1945
// 算术运算符 +
int m=10;
int n=m+10;
System.out.println(n);
//不同基本数据类型进行计算时,会先转为其中最大精度的数值类型再做计算
double dd1=123.3F+123+1.0;
int ii1=(int) (123.3F+123+1.0);
//在计算时byte、short、char之间不会相互转换,他们三者在计算时首先会转换为int类型。
byte bb1=90;
short ss1=80;
short ss2=(short) (bb1+ss1);
int ii2=bb1+ss1;
int c0='A';
System.out.println(c0);//65
int ii3='B'+bb1+ss1;
System.out.println(ii3);//236
//int--char
int ii4=56;
char c1=(char) ii4;
System.out.println(c1);//8
System.out.println((char)ii4);//8
}