有两种主要的原始转换:
我正在阅读Java SE Specification中有关扩大转换的内容,此处我看到以下图片:
int big = 1234567890;
float approx = big; // good, it's widening conversion (int -> float)
System.out.println(big - (int)approx); // what? (float -> int)
在最后一行代码中,我认为它的缩小转换,我是对的吗?如果我错了,请解释我!提前谢谢。
答案 0 :(得分:3)
是的, last 行使用缩小转换,这就是需要强制转换的原因。该示例用于证明中间线上的扩展转换丢失了所有信息:
此程序打印
-46
,从而表示在从int类型转换为float类型的过程中信息丢失,因为float类型的值不精确到九位有效数字。