参考链接: java基本数据类型转换之向上转型和向下转换.
整型,字符型,浮点型的数据在混合运算中相互转换,转换时遵循以下原则:
byte,short,char之间不会相互转换,他们在计算时首先会转换为int类型。 boolean 类型是不可以转换为其他基本数据类型。
隐式类型转换(向上转换)
小转大,自动!自动类型转换
容量小的类型可自动转换为容量大的数据类型;
byte,short,char → int → long → float → double
显式类型转换(向下转型)
大转小,强转!强制类型转换(也叫显式类型转换)
容量大的类型可强制转换为容量小的数据类型;
double→ float→ long → int →byte,short,char
float和 double的计算精度丢失问题
public static void main(String[] args) {
double q = 45.1d;
float w = 10;
final double e = q * w;
final float r = ((float) q) * w;
System.out.println(e);
System.out.println(r);
System.out.println((double) r);
System.out.println(e == r);
}
public static void main(String[] args) {
double q = 45.11d;
float w = 10;
final double e = q * w;
final float r = ((float) q) * w;
System.out.println(e);
System.out.println(r);
System.out.println((double) r);
System.out.println(e == r);
}
|