数据类型的扩展
银行业务的处理
说到数字,我们可能第一想到的是int 、浮点型数据类型
但是对于“钱”来说,用浮点型数据类型是不行的,Int更是不可以
为何浮点型不可以?
- 因为浮点型float double是有限的,离散的,舍入误差的,大约,接近但是不相等
- 我们在处理这些需要精度的数据的时候应该要避免使用浮点数
float f=0.1f; //0.1
double d=1.0/10; //0.1
System.out.println(f==d); //false
float d1=2212121454554f;
float d2=d1+1;
System.out.println(d1==d2) //true
可见使用时浮点型进行比较是不精确的
那么,应该要什么数据处理银行业务?
用java数学工具类 BigDecimal
类型转换
int i=128;
byte b=(int)i; //由高到低 强制转换
double b=i; //由低到高 自动转换