第四天01 JAVA基础语法(类型转换)(学习笔记)

double PI=3.14;
float PI=3.14;
如果想要将double长度的数据指定给float类型变量,编译程序就会告诉你double类型放到float变量,会因为8个字节数据要放到4个字节空间,有两种方式可以避免错误:
第一种方式是在3.14后面加上F,这会告诉编译程序,请用float来存储3.14F这个值:
例如:float PI=3.14F;
第二种方式是将double类型的3.14丢(Cast)到float变量中,让编译程序通过:
例如: float PI=(float) 3.14;
这里使用(float)语法告诉编译程序,你就是要将double类型的3.14指定给float变量,让编译程序通过。

整数部分类型转换
int number=10;
例如: int number=2147483648;
编译时会得到integer bumber too large的错误,也许你认为是int变量number最大值装不下2147483648,事实上,并非是number装不下2147483648,是因为程序在写下一个整数时,默认是使用不超过int类型长度,如果超过了,你要告诉编译程序,用long来配置整数的长度,也就是在数字后面加上个L;
例如: long number=2147483648L;

byte number=10;
因为10是在byte可存储的范围中,所以上例是正确的。

byte number=128;
128超过byte可存储的范围,于是会使用int存储128,你要将int类型存储至byte变量,就会出现possible loss of precision的编译错误。

在来看运算,如果表达式中包括不同类型数值,则运算时以长度最长的类型为主,其他数值自动提升(Promote)类型,

例如: int a=10;
double b=a*3.14;
这个程序片段中,a是int类型,而写下的3.14默认是double,所以a的值被提至double空间进行运算。

short a=1;
short b=2;
short c=(short) (a+b);
这就是告诉编译程序,要将int的运算结果丢到short;

猜你喜欢

转载自blog.csdn.net/weixin_39559301/article/details/80635554