数据类型之间转换
数值类型之间转换
当使用两个数值进行二元操作时(如a+b)先要将两个操作数转换成同一种类型,然后再进行计算。
如果两个操作数有一个是double类型的,另一个操作数就会转换为double类型
否则,如果其中一个操作数是float类型,另一个操作数将会转换为float类型。
否则,如果其中一个操作数是long类型,另一个操作数将会转换为long类型。
否则,两个操作数都将被转换为int类型.
强制类型转换
double x = 9.97;
int i = (int )x; //x值为9;
如果想对浮点数进行舍入运算,要如下操作
double x = 9.97;
int i = (int )Math.round(x);//x值为10;
如果试图将一个数值从一种类型强制转换为另一种类型,而又超出了目标类型的表示范围,结果会截断成一个完全不同的值如:(byte)300 结果为44;int 300的二进制表示是:100101100,前面的很多0省略了,共32位,当它被转成byte时,只能截取从右至左的低八位,也就是00101100
300对128取余为44