数据类型之间转换

数值类型之间转换

当使用两个数值进行二元操作时(如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 结果为44int 300的二进制表示是:100101100,前面的很多0省略了,32,它被转成byte,只能截取从右至左的低八位,就是00101100

300128取余为44

posted @ 2014-04-02 21:12  地球上的星星  阅读(153)  评论(0)    收藏  举报