Java数值类型转换
程序在运行时,经常会涉及数值类型转换的问题,一下对这一问题简单分析:
说明:实心箭头表示类型转换过程没有精度损失,虚箭头表示可能有精度损失。
隐式类型转换:两数值在进行计算时,会首先提升至两数值的最高精度,包含三种类型(double float long),若没有这三种类型,则全部提升至int类型进行计算。
强制类型转换:用于高精度->低精度的转换,如 :
double d = 100;
int i = (int)d;
如果原始类型的值超过了目标类型的表示范围,结果可能完全不同,如:
int a = 200;
byte b = (byte) a;
得出结果 b = -56