有两种主要的原语转换:
我正在阅读关于在Java规范中扩展转换的内容,这里我看到了以下图片:

int big = 1234567890;
float approx = big; // good, it's widening conversion (int -> float)
System.out.println(big - (int)approx); // what? (float -> int)在最后一行代码中,我认为正在缩小转换范围,对吗?如果我错了,请解释一下!提前谢谢。
发布于 2015-06-30 17:27:10
是的,最后一行使用缩窄转换,这就是为什么强制转换是必要的。该示例用于演示中线上的拓宽转换会丢失信息,仅此而已:
该程序打印
-46,从而表明在从int类型转换到类型浮点数时丢失了信息,因为浮点数类型的值不精确到9个有效数字。
https://stackoverflow.com/questions/31144486
复制相似问题