1、整型数据类型
因为整型数据类型默认为int类型,所以当你想要把超出int类型的数值赋值给long类型时,要把数值后边加上L或者l(小写L),不然会报错。
public class TestVar05{
public static void main(String[] args){
//整数类型默认就是int类型的,所以12345678910是一个int类型的数,对于int类型来说,它超出范围了
//要想把一个数给long类型变量,那么后面加上L(推荐)或者l就可以了
long num4 = 1212345678910; //这个就会报错
long num5 = 12345678910L; //这个正确
System.out.println(num5);
//注意:只有这个数超出int类型的范围了后面才需要加上L,否则无需加L也可以赋值给long类型:
long num6 = 12; //这个也正确,没超出int范围。
System.out.println(num6);
2、浮点型数据类型
因为默认浮点类型默认为double类型,所以要想将一个double类型的数赋值给float类型时,数值后边加F或f明确类型,因为float类型的取值范围有限,所以在最后一位采取四舍五入的情况处理。
float类型又被称作单精度类型,尾数可以精确到7位有效数字,在很多情况下,float类型的精度很难满足需求。
而double表示这种类型的数值精度约是float类型的两倍,又被称作双精度类型,绝大部分应用程序都采用double类型。
float类型的数值有一个后缀F或者f ,没有后缀F/f的浮点数值默认为double类型。
也可以在浮点数值后添加后缀D或者d, 以明确其为double类型。
PS:有效数字指的是从左开始第一个不为0的数到最后一个数
代码:
public class TestVar06{
public static void main(String[] args){
//浮点类型的变量:
//注意:浮点型默认是double类型的,要想将一个double类型的数赋给float类型,必须后面加上F或者f
float f0 = 3.14234567898623; //程序出错
float f1 = 3.14234567898623F; //明确之后,正常运行,会舍去超出范围的数值。
System.out.println(f1);
//注意:double类型后面可以加D或者d,但是一般我们都省略不写
double d1 = 3.14234567898623D;
System.out.println(d1);
}
}
扩展:
12 ;//默认情况下赋值就是十进制的情况
012;//前面加上0,这个值就是八进制的
0x12;//前面加上0x或者0X,这个值就是十六进制的
0b10;//前面加上0b或者0B,这个值就是二进制的