虽然小范围的类型转大范围的类型能够隐式转换,但当有表达式操作时需要强制转换,否者可能失去精度 。
左到右范围从小到大:byte->short->int->long->float->double
例如:
int a = 1; double b = a/2; //结果为0 double c = (double)a/2; //结果为0.5
在Java中两个int型的数相除,取整数部分,小数部分直接被舍去,如上面的a/2。
如果在表达式中存在两种类型,结果以大类型的为准。
例如:
int a = 1; double b = 2.0; //double赋值可以写2,也可以写2.0,也可以写2d,或者2.0d double c = a/b; 结果为0.5 ,//结果不用再强制转换



