BigDecimal使用详解
2019-03-19 本文已影响2人
此生唯一自传
我们知道商业级运算是肯定不能用double/float的,精确运算需要用到BigDecimal来处理,下面介绍BigDecimal的使用方法
一、构造方法
BigDecimal的构造方法有很多种,大家最常用的如下方式:
BigDecimal bd1=new BigDecimal(10);
BigDecimal bd2=new BigDecimal("10");
二、四则预算
加法:bigDecimal1.add(bigDecimal2);
减法:bigDecimal1.subtract(bigDecimal2);
乘法:bigDecimal1.multiply(bigDecimal2);
除法:bigDecimal1.divide(bigDecimal2);
三、对小数的处理
(1).DecimalFormat类
例:
DecimalFormat df =new DecimalFormat("#.00");
df.format(3.1415926);
结果输出3.14
.00 表示两位小数 #.000三位小数......
(2)setScale方法
double f = 111231.5585;
BigDecimal b = new BigDecimal(f);
double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); //保留2位小数
![](https://img.haomeiwen.com/i3144702/16a7b88159404997.png)
四、比较大小
BigDecimal比较大小不能使用equals因为不仅比较值还比较精度
这里使用BigDecimal自带方法compareTo
例:
BigDecimal a = new BigDecimal("1.00");
BigDecmial b = new BigDecimal(1);
a.compareTo(b)==0结果是true
这里返回值含义: -1小于 0等于 1大于