首页 > 代码库 > JAVA学习笔记-类型提升的问题
JAVA学习笔记-类型提升的问题
//表达式中的类型提升问题
int a = 3;
long b = 4;
double d = 5.3;
int c =(int)(a+b); //做所有的二元运算符(+-*/%),都会有类型提升的问题!
float f = (float)(a+b); //a为int,b为double,a+b会被提升为double类型,而赋值给f时,f为float类型,股需要强制转换!
容易出错的练习题:
一年挣10亿,20年挣多少钱?
int money = 1000000000;
int years =20;
long total = (long)money*years; //这里巧妙的运用了强制转型的类型提升,解决了超出int范围的问题
System.out.println(total);
一个人70年心跳多少次?
long times = 70L*60*24*365*70; //同上,不过强制转换为L,尽量放在第一个70后面,因为有些情况,若把L放在最后一个70后面,你不能够确定前面的数值相乘是否超出范围,前面相乘已经超出了范围,最后再强制转换类型提升之后,也是于事无补。
System.out.println(times);
JAVA学习笔记-类型提升的问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。