浮点型(float,double):不适合做钱的类型
double n1=0.03;
double n2=0.02;
System.out.println("double计算:"+(n1-n2));
结果为:0.009999999999999998
float f1=0.02f;
float f2=0.01f;
System.out.println("float计算:"+(f1-f2));
结果为:0.01 涉及到类型转换。
BigDecimal bg=new BigDecimal("0.03");
BigDecimal bg1=new BigDecimal("0.02");
//加法
System.out.println("加法:"+bg.add(bg1));
//减法
System.out.println("减法:"+bg.subtract(bg1));
//乘法
System.out.println("乘法:"+bg.multiply(bg1));
//除法
System.out.println("除法:"+bg.divide(bg1));
结果为: 加法:0.05、减法:0.01、乘法:0.0006、除法:1.5。
mony的精度是4位.
mony的另外一个好处就是,在汇率转换的时候比较方便.并且在显示的时候,可以多元化.
Bigdecimal类是专门为解决浮点数无法精确计算而设计的。并且提供了常用的算术运算方法。特别是与数据库Decimal映射时,BigDecimal是最优方案。