数据类型扩展
整数
如何表示二进制,八进制,十六进制
二进制 0b 十进制 八进制 0 十六进制:0x
public class Demo01 {
public static void main(String[] args) {
int i1=10;
int i2=010;//八进制
int i3=0x10;//十六进制 0~9 A~F
System.out.println(i1);
System.out.println(i2);
System.out.println(i3);
System.out.println("************************************");
}
}
运行结果:
浮点数
银行业务怎么表示?
如果用浮点数来表示,会出现以下问题:
public class Demo02 {
public static void main(String[] args) {
float f=0.1f;//0.1
double d=1.0/10;//0.1
System.out.println(f);
System.out.println(d);
System.out.println(f==d);
System.out.println("************************************");
float f1=23333333333333333f;
double d1=f1+1;
System.out.println(f1);
System.out.println(d1);
System.out.println(f1==d1);
System.out.println("************************************");
}
}
运行结果:
由运行结果可以明显看出,f和d在逻辑上都等于0.1,但是(fd)的结果是false;d1=f1+1,但是(f1d1)的结果是true。这是因为float的精度是有限的,所有表示出来的点是离散的,在与double比较时和舍入误差,与最后的结果的关系时接近但不等于。所以最好完全使用浮点数进行比较。
现在,在银行表示钱时,一般使用数学工具类:BigDecimal
字符
由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。
由低到高的顺序为:
byte,short,char,int,long,float,double
运算中,不同类型的数据先转化为同一类型,然后进行运算。
public class Demo03 {
public static void main(String[] args) {
char c1='a';
char c2='中';
System.out.println(c1);
System.out.println((int)c1);//强制转换
System.out.println(c2);
System.out.println((int)c2);//强制转换
System.out.println("************************************");
char c3='/u0061';
System.out.println(c3);
}
}
运行结果:
注意点:
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.在把高容量转换到低容量的时候,强制转换
4.转换的时候可能存在内存溢出,或者精度问题
原创文章,作者:6024010,如若转载,请注明出处:https://blog.ytso.com/274815.html