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学习笔记-类型提升的问题的主要内容,如果未能解决你的问题,请参考以下文章

2022年全新Java学习路线图,含源码+笔记,另附在职提升课

c语言学习笔记—数据类型转换

java分布式锁实现,书籍+视频+学习笔记+技能提升资源库

Java学习笔记之:java的数据类型

Java学习笔记之:java数据类型的转换

java学习笔记—— 数据类型数据类型转换