常用构造函数
-
BigDecimal(int)
创建一个具有参数所指定整数值的对象
-
BigDecimal(double)
创建一个具有参数所指定双精度值的对象
-
BigDecimal(long)
创建一个具有参数所指定长整数值的对象
-
BigDecimal(String)
创建一个具有参数所指定以字符串表示的数值的对象
推荐使用BigDecimal(String)创建,原因double类型无法准确转化为指定数字。
常用方法
-
add(BigDecimal) 值相加
-
subtract(BigDecimal) 值相减
-
multiply(BigDecimal) 值相乘
-
divide(BigDecimal) 值相除
遇到除不尽出现无限不循环小数会报错,推荐使用时设置精度
bigDecimal.divide(BigDecimal,2,BigDecimal.ROUND_HALF_UP) 保留2位小数四舍五入 -
toString()
将BigDecimal对象中的值转换成字符串
-
doubleValue()
将BigDecimal对象中的值转换成双精度数
-
floatValue()
将BigDecimal对象中的值转换成单精度数
-
longValue()
将BigDecimal对象中的值转换成长整数
-
intValue()
将BigDecimal对象中的值转换成整数
-
toPlainString()
将BigDecimal对象中的值转换成不带指数的字符串
保留指定位数小数
方法一:
进行除法时
bigDecimal.divide(BigDecimal,2) 保留2位小数
bigDecimal.divide(BigDecimal,2,BigDecimal.ROUND_UP) 保留2位小数向上取整
bigDecimal.divide(BigDecimal,2,BigDecimal.ROUND_DOWN) 保留2位小数向下取整
bigDecimal.divide(BigDecimal,2,BigDecimal.ROUND_HALF_UP) 保留2位小数四舍五入
方式二:
bigDecimal.setScale(位数,舍入模式);
格式化数值
NumberFormat currency = NumberFormat.getCurrencyInstance(); //货币格式化
NumberFormat percent = NumberFormat.getPercentInstance(); //百分比格式化
percent.setMaximumFractionDigits(3); //百分比小数点最多3位
BigDecimal loanAmount = new BigDecimal("12000.48"); //金额
BigDecimal interestRate = new BigDecimal("0.006"); //百分比
String loanAmountStr = currency.format(loanAmount);//金额进行格式化 str = 12,000.48
String interestRateStr = percent.format(interestRate);//百分比式化 str = 0.6%