目录
1.低精度 转 高精度:
int a=2;// 低精度
double b=a; //高精度
System.out.println(b); //自动转
2.高精度 转 低精度
double a=2; //高精度
int b=(int)a; //double转int 强转
System.out.println( b);
注意点
1
注:当多个类型数字相计算时,结果将自动转换为最高精度
如:
2
-
强制类型转换一般不推荐使用,因为有可能发生精度损失、数据溢出。
-
byte/short/char这三种类型都可以发生数学运算,例如加法“+”.
-
由下面代码 可以看出只有当 char 类型的‘a’发生运算时才会转化成对应得 ASCII 码值
3.byte/short/char这三种类型在运算的时候,都会被首先提升成为int类型,然后再计算。
short + short = int
byte + short = int
byte + byte = int
4.boolean类型不能发生数据类型转换
ASCII码表:
American Standard Code for Information Interchange,美国信息交换标准代码。
Unicode码表:
万国码。也是数字和符号的对照关系,开头0-127部分和ASCII完全一样,从128开始包含有更多字符。
48 - '0'
65 - 'A'
97 - 'a'
一些相关运算:
1
若给定(两个int类型)number1=30,numebr2=40.先相除得int类型的0,再经过转化为double类型的0.0
而下面这一种是将number1先变为double类型,再和number2运算,结果为double类型
2
注意!!:13/10先变为int类型的1,后面再赋值给
左边的double类型 ,结果为1.0 不能想当然的认为左边是double类型
结果就是1.3
想要得到1.3正确写法应该是这样 ,
13/10.0 int与double的运算,先转化为double类型,因此结果是1.3
3.
小数参与运算时结果可能是不准确的;