拓展
进制:
int i =10;
int i2 = 010;//8进制
int i3 = 0x10;//16进制
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
浮点数比较:
float f = 0.2f;
double d =1.0/5;
System.out.println(f==d);
System.out.println(f);
System.out.println(d);
我们很明显的发现,float和double类型的输出结果相同,但是在比较过后的结果是false。其原因是float和double不能表示精确值,不能用float和double来对货币进行运算(可以使用BigDecimal,即数学工具类)
舍入误差:
float f1 = 29999999999999f;
float f2 = f1+1;
System.out.println(f1==f2);
根据上面float和double类型的介绍,我们已经知道两者不能用来表示精确值,这里就是float舍入误差的结果,使得f1和f2相等
字符的强制转换:
char c = 'f';
char c1 = '罪';
System.out.println(c);
System.out.println((int)c);
System.out.println(c1);
System.out.println((int)c1);