数据类型转换实例
-
数据类型转换分类:强制类型转换和自动类型转换
public static void main(String[] args) { //数据类型从低到高:byte,short,char→int→long→float→double int i = 128; //强制转换 (类型)变量名 高——→低 byte a = (byte) i; //内存溢出 //自动转换 低——→高 double b = i; System.out.println(i); //输出结果:128 System.out.println(a); //输出结果:-128 System.out.println(b); //输出结果:128.0 }
-
字符—整数类型转换
public static void main(String[] args) { char c = 'a'; int d = c + 1; //char--→int,低——→高,自动类型转换 System.out.println(d); //输出:98 System.out.println((char) d); //输出:b;int——→char,高——→低,强制类型转换 }
-
精度问题
public static void main(String[] args) { System.out.println((int) 23.7); //输出结果:23 System.out.println((int) -45.89f); //输出结果:-45 }
-
操作比较大的数的时候,注意溢出问题(数字是否超出数据类型的表示范围)
public static void main(String[] args) { //JDK7新特性,数字之间可以用下划线分割 int money = 10_0000_0000; int years = 20; int total = money * years; //total输出结果:-1474836480,计算时溢出 long total2 = money * years; //total2输出结果:-1474836480,默认是int,转换之前存在问题 long total3 = money * ((long) years); System.out.println(total3);// 输出结果:20000000000 }