数据类型转换就是将数据(变量、数值、表达式的结果等)从一种类型转换为另一种类型。
自动类型转换
自动类型转换就是编译器自己进行的数据类型转换,这种转换不需要程序员手动干预,会自动发生。
(1)将一种类型的变量的数据赋值给另外一种类型的变量时就会发生自动类型转换,例如
float a=2;
2是int(整型)的数据,但是a定义的是float类型,此时编译器会将“2”自动转换为float类型 。
int n = a;
现在从新定义一个整型变量n,但是这里我们是将上面的浮点数类型a赋值给n,此时编译器又将变量a自动转换为int类型。
在赋值运算时,当赋值符号两边的数据类型不是同一类型时,需要把右边表达式的类型转换为左边变量的类型,这可能会导致数据失真,或者精度降低;所以说,自动类型转换并不一定是安全的。对于不安全的类型转换,编译器一般会给出警告。
2) 在不同类型的混合运算中,编译器也会自动地转换数据类型,将参与运算的所有数据先转换为同一种类型,然后再进行计算。转换的规则如下:
- 转换按数据长度增加的方向进行,以保证数值不失真,或者精度不降低。例如,int 和 long 参与运算时,先把 int 类型的数据转成 long 类型后再进行运算。
- 所有的浮点运算都是以双精度进行的,即使运算中只有 float 类型,也要先转换为 double 类型,才能进行运算。
- cha