JAVA学习笔记-类型提升的问题
Posted iamAnonymous
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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学习笔记-类型提升的问题的主要内容,如果未能解决你的问题,请参考以下文章