BigDecimal的使用

1.查看jdk,BigDecimal的含义为不变的,任意精度的带符号的十进制数字,A BigDecimal由任意精度整数未缩放值和32位整数级别组成。如果是涉及到金融这一方面的开发,这个类还是很常用的,毕竟是关乎金钱的。

2.BigDeciaml常用的构造方法有new BigDecimal(double vla)、new BigDecimal(String val)、new BigDecimal(int val)等等,建议使用的是第二种传入字符串的方式,其它方式有时候可能会出现精度损失的情况,比如传参格式为double类型。

3.BigDecimal常用的计算方法:

BigDecimal的使用

4.BigDecimal比较大小的方法。

1)BigDecimal比较数据值大小的方法为compareTo,若a和b均为BigDecimal类型,如果a.compareTo(b) > 0 则a > b;如果a.compareTo(b) < 0 则 a<b;如果a.compareTo(b) == 0 则a=b
BigDecimal的使用
5.BigDecimal在进行相关数学运算操作时可能会出现ArithmeticException这个异常,假设我们要做一个除于的操作,a/b,但是a/b有可能是除不尽的,比如1/3是等于0.333…。除不尽的,程序当然会抛出异常。当然BigDecimal类为我们提供了八种取舍模式,我们在进行加减乘除操作时,都可以指定保留多少位数,以及采用哪种取舍模式。
BigDecimal的使用1)ROUND_UP,舍入模式从0开始,始终在非零丢弃分数之前增加数字,该模式不会降低计算值的大小。
2)ROUND_DOWN,舍入模式向0舍入,不会在丢弃的分数之前递增数字,该模式不会增加计算值的大小。
3)ROUND_CEILING,圆形模式向正无穷大,如果BigDecimal为正,表现为ROUND_UP,如果为负,则表现为ROUND_DOWN。
4)ROUND_FLOOR,舍入模式向负无穷大转弯,如果BigDecimal为正,表现为ROUND_DOWN,如果为负,则表现为ROUND_UP。
5)ROUND_HALF_UP,四舍五入模式。
6)ROUND_HALF_DOWN,对于ROUND_UP如果丢弃的分数> 0.5,则表示行为; 否则,表现为ROUND_DOWN 。
7)ROUND_HALF_EVEN,对于ROUND_HALF_UP行为,如果丢弃的分数的左边的数字是奇数的; 像ROUND_HALF_DOWN一样,如果它是均匀的。 请注意,这是在一系列计算中重复应用时最小化累积误差的舍入模式。
8)ROUND_UNNECESSARY,不指定取舍模式,如果产生不精确的结果,则会抛出算术异常。