Int类型转换为bigdecimal类型:先将int转为String,再通过BigDecimal的构造方法去创建
BigDecimal price = new BigDecimal(String str);
Bigdecimal类型相加
BigDecimal newDeposit=price.add(oldDecimal);
扩充
add(BigDecimal)BigDecimal对象中的值相加,然后返回这个对象。
subtract(BigDecimal)BigDecimal对象中的值相减,然后返回这个对象。
multiply(BigDecimal)BigDecimal对象中的值相乘,然后返回这个对象。
divide(BigDecimal)BigDecimal对象中的值相除,然后返回这个对象。
做除法时可以加入参数,确保精确到小数点后几位
需要加入具体的位数和保留模式
就是给divide设置精确的小数点divide(xxxxx,2, BigDecimal.ROUND_HALF_EVEN)
BigDecimal定义了一下舍入模式,只有在作除法运算或四舍五入时才用到舍入模式,下面简单介绍,详细请查阅J2se API文档
static int
**ROUND_CEILING**
Rounding mode to round towards positive infinity.
向正无穷方向舍入
static int
**ROUND_DOWN**
Rounding mode to round towards zero.
向零方向舍入
static int
**ROUND_FLOOR**
Rounding mode to round towards negative infinity.
向负无穷方向舍入
static int
**ROUND_HALF_DOWN**
Rounding mode to round towards "nearest neighbor" unless both neighbors are equidistant, in which case round down.
向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向下舍入, 例如1.55 保留一位小数结果为1.5
static int
**ROUND_HALF_EVEN**
Rounding mode to round towards the "nearest neighbor" unless both neighbors are equidistant, in which case, round towards the even neighbor.
向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,如果保留位数是奇数,使用ROUND_HALF_UP ,如果是偶数,使用ROUND_HALF_DOWN
static int
**ROUND_HALF_UP**
Rounding mode to round towards "nearest neighbor" unless both neighbors are equidistant, in which case round up.
向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向上舍入, 1.55保留一位小数结果为1.6
static int
**ROUND_UNNECESSARY**
Rounding mode to assert that the requested operation has an exact result, hence no rounding is necessary.
计算结果是精确的,不需要舍入模式
static int
**ROUND_UP**
Rounding mode to round away from zero.
向远离0的方向舍入
toString()将BigDecimal对象的数值转换成字符串。
doubleValue()将BigDecimal对象中的值以双精度数返回。
floatValue()将BigDecimal对象中的值以单精度数返回。
longValue()将BigDecimal对象中的值以长整数返回。
intValue()将BigDecimal对象中的值以整数返回。
网友评论