package BangBean;public class CastingNumbers {
public static void main(String[] args){
double above=1.7,below=0.4;
System.out.println("above:"+above);
System.out.println("below:"+below);
System.out.println("(int)above:"+(int)above);
System.out.println("(int)below:"+(int)below);
System.out.println("(char)('a'+above):"+(char)('a'+above));
System.out.println("(char)('a'+below):"+(char)('a'+below));
}
}
打印的结果为:
above:1.7
below:0.4
(int)above:1
(int)below:0
(char)('a'+above):b
(char)('a'+below):a
为什么会打印出b呢?
public static void main(String[] args){
double above=1.7,below=0.4;
System.out.println("above:"+above);
System.out.println("below:"+below);
System.out.println("(int)above:"+(int)above);
System.out.println("(int)below:"+(int)below);
System.out.println("(char)('a'+above):"+(char)('a'+above));
System.out.println("(char)('a'+below):"+(char)('a'+below));
}
}
打印的结果为:
above:1.7
below:0.4
(int)above:1
(int)below:0
(char)('a'+above):b
(char)('a'+below):a
为什么会打印出b呢?
首先计算‘a’+above = 98.7
转为char为‘b’
a的ascii好像是60多来着的吧,不清楚了,加1的话就再转化为char型就是b啊