2-7 类型的自动转换
比喻:穷人+富人→运算=结果自动变成富人
1 int a=10;//比喻穷人 2 double b=15.6;//比喻富人 3 a+b=25.6;//结果还是富人 4 5 char man='男';//字符 6 char woman='女';//字符 7 String str="与";//字符串 8 man+str+woman="男与女";//自动转换成字符串
例1:
1 public class test{ 2 public static void main(String[] args){ 3 int A=5; 4 double B=1.3; 5 int sum=A+B; 6 System.out.println(sum); 7 } 8 }
报错:可能损失精度。
解决方法:“int”改为“double”。
1 int age=19;//✔ 2 char sex='女';//✔ 3 char result=age+sex;//✘ 输出结果为字符串,"char"应改为"String" 4 5 int a=10;//✔ 6 int b=10.2;//✘ double不可以自动转换为int 7 double c=10;//✔ "double"比整型"int"大,可存储整型,输出结果为c=10.0 8 c=a;//✔ 输出结果为c=10 9 int d=c;//✘ 整型不可以存储非整型
2-8 类型的强制转换
格式:(类型名)表达式
int b=(int)10.2; double a=10; int c=(int)a;
例:去年Apple笔记本所占市场份额是20,今年增长的市场份额是9.8,求今年所占的份额?
int before=20; double rise=9.8; int now=before+rise;//✘ 编译出错,不能完成自动类型转换
代码改错:int now=before+(int)9.8