一、自动类型转换
在程序运行时,常常需要将一种数值类型转换为另一种数值类型。引用Java核心卷I中的一张图,给出了数值类型之间的合法转换。

图中有6个实心箭头,表示无信息丢失的转换;有3个虚箭头,表示可能有精度损失的转换。
小精度转大精度可以自动转换,int值类型的值会自动地转成double类型。例如:
int a=1;
double b=a;
System.out.println(b);
控制台输出为0.1。
二、强制类型转换
有些时候也需要将double转换成int,在Java中,允许这种数值之间的类型转换。这种情况,需要通过强制类型转换实现这个操作。强制类型转换的语法是在圆括号中给出想要转换的目标类型,后面紧跟待转换的变量名。当然,有可能会丢失一些信息,例如:
double a=1.99;
int b=(int) a;
这样,b的值为1。强制类型转换通过截断小数部分将浮点值转换为整型。如果想对浮点数进行舍入运算,可以通过Math.round方法:
double a=1.99;
int b=(int) Math.round(a);
现在,b的值为2。