一.简介
有时我们对程序精度要求较高时,float和double就不适用了,此时就需要BigDecimal。
二.BigDecimal类常用方法
1.BigDecimal(String val):构造方法,将String类型转换成BigDecimal类型数据。
2.BigDecimal(double val):构造方法,将double类型转换成BigDecimal类型数据。
3.BigDecimal(int val):构造方法,将int类型转换成BigDecimal类型数据。
4.BigDecimal add(BigDecimal value):加法,求两个BigDecimal类型数据的和。
5.BigDecimal subtract(BigDecimal value):减法,求两个BigDecimal类型数据的差。
6.BigDecimal multiply(BigDecimal value):乘法,求两个BigDecimal类型数据的积。
7.BigDecimal divide(BigDecimal divisor):除法,求两个BigDecimal类型数据的商。
8.BigDecimal remainder(BigDecimal divisor):求余数,求BigDecimal类型数据除以divisor的余数。
9.BigDecimal max(BigDecimal value):最大数,求两个BigDecimal类型数据的最大值。
10.BigDecimal min(BigDecimal value):最小数,求两个BigDecimal类型数据的最小值。
11.BigDecimal abs():绝对值,求BigDecimal类型数据的绝对值。
12.BigDecimal negate():相反数,求BigDecimal类型数据的相反数。
除法可能出现不是整除的办法这时就会报错,我们就要用divide三个参数的方法。
BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)
第一参数表示除数。
第二个参数表示小数点后保留位数。
第三个参数表示舍入模式。只有在作除法运算或四舍五入时才用到舍入模式。
舍入模式有下面这几种:
ROUND_CEILING //向正无穷方向舍入
ROUND_DOWN //向零方向舍入
ROUND_FLOOR //向负无穷方向舍入
ROUND_HALF_DOWN //向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向下舍入, 例如1.55 保留一位小数结果为1.5
ROUND_HALF_EVEN //向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,如果保留位 数是奇数,使用ROUND_HALF_UP,如果是偶数,使用ROUND_HALF_DOWN
ROUND_HALF_UP //向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向上舍入, 1.55 保留一位小数结果为1.6
ROUND_UNNECESSARY //计算结果是精确的,不需要舍入模式
ROUND_UP //向远离0的方向舍入