BigDecimal
BigDecimal
float和double类型在进行精确计算时会出现精度丢失的问题,可以使用BigDecimal解决。
1. BigDecimal常见方法
1.1 创建
BigDecimal(String val)BigDecimal.valueOf(double val)
1 | BigDecimal a = new BigDecimal("0.1"); |
1.2 加减乘除
add():加法subtract():减法multiply():乘法divide():除法,除法需要指定精度和舍入模式
1 | BigDecimal a = new BigDecimal("0.1"); |
1.3 比较
a.compareTo(b):-1表示a小于b,0表示a等于b,1表示a大于bBigDecimal使用equals()方法进行等值比较会出现精度忽略问题
1 | BigDecimal a = new BigDecimal("0.1"); |
1.4 保留小数
setScale()
1 | BigDecimal a = new BigDecimal("0.12345"); |
