java中的 8 种基本数据类型,以及它们的占内存的容量大小和表示的范围
根据数据容量和范围,小的数据类型可以转换为大的数据类型
比如:
int b = 1;
double c = b;
但是大的范围转为小的数据类型就会导致精度丢失?
比如:
double a = 1.0;
int b = a;
整形的数据在进行计算的时候会转换为int类型去进行计算 同时要注意的是不要超过类型的数值范围
?可自动关系转换图谱
这种可以使多大范围的强制转换为小范围的,但是如果范围超了会导致精度丢失
double a = 1.0;
int b = (int) a;
当大范围的数值被强制转换为小范围的数值时,其精度可能会受到影响。以double和int为例,如果将一个double类型的值强制转换为int类型,那么小数部分将被直接截断,而不是四舍五入。因此,如果你有一个带有小数部分的double值,如3.14,在强制转换为int类型后,你将得到3,而不是3.14的整数部分3。
为了处理这种精度损失,你可以在强制类型转换前使用四舍五入的方法将float类型值转换为int类型值。具体代码如下:
float f = 3.14; int i = ( int )(f + 0.5); // 四舍五入。
这样可以保证转换后的int类型值更加准确。
?