目录
一、类型精度
低---------------------------------------->高
byte short char int long float double
二、数据类型转换
-
当把级别低的变量的值赋给级别高的变量时,系统自动完成数据类型的转换。
float a = 100; //输出的值为100.0
-
当把级别高的变量的值赋给级别低的变量时,必须使用类型转换运算。格式如下: (类型名)要转换的值
int a = (int)100.0; long b = (long) 66.6F; int c = (int)99.99L;
类型转换运算的结果的精度可能低于原数据的精度。
1.当把一个int型常量赋值给一个byte、short和char型变量时,不可超出这些变量的取值 范围,否则必须进行类型转换运算。
例如:byte型变量的取值范围是-2^7 ~ 2^7-1。
byte a = (byte)-129;
byte b = (byte)128;
byte c = 127; //无需强制转换,在byte变量的取值范围内
输出结果:
127 -128 127
2.y=(byte)x是正确的,而y=x是错误的。编译器不检查变量x的值是多少,只检查x的类型。
int a = 1;
byte b;
b = a \\报错,int无法转换为字节
b = (byte)a;
3.一个常见的错误是在把一个double型常量赋值给float型变量时没有进行类型转换运算。
float a = 100.0; \\报错float无法转换为double(因为double类型后的D,d可以省略,float后的F或f必须存在,常常会被忘记)
**方法一**
float a = 100.0F;
**方法二**
float a = 100.0f;
**方法三**
float a =(float)100.0;