BigDecimal是Java中的高精度,可以处理超过16位精度的数。
1、常用方法
add(BigDecimal): BigDecimal对象中的值相加,返回BigDecimal对象
subtract(BigDecimal): BigDecimal对象中的值相减,返回BigDecimal对象
multiply(BigDecimal): BigDecimal对象中的值相乘,返回BigDecimal对象
divide(BigDecimal): BigDecimal对象中的值相除,返回BigDecimal对象
toString(): 将BigDecimal对象中的值转换成字符串
doubleValue(): 将BigDecimal对象中的值转换成双精度数
floatValue(): 将BigDecimal对象中的值转换成单精度数
longValue(): 将BigDecimal对象中的值转换成长整数
intValue(): 将BigDecimal对象中的值转换成整数
2、divide的保留小数问题
BigDecimal divide(BigDecimal divisor,int scale, int roundingMode)
第一个参数是除数,第二个参数代表保留几位小数,第三个代表的是使用的模式。
BigDecimal.ROUND_DOWN: 直接省略多余的小数,比如1.28如果保留1位小数,得到的就是1.2
BigDecimal.ROUND_UP: 直接进位,比如1.21如果保留1位小数,得到的就是1.3
BigDecimal.ROUND_HALF_UP: 四舍五入,2.35保留1位,变成2.4
BigDecimal.ROUND_HALF_DOWN: 四舍五入,2.35保留1位,变成2.3
注:后边两种的区别就是如果保留的位数的后一位如果正好是5的时候,一个舍弃掉,一个进位。
更详细的—> BigDecimal.ROUND_各种用法