前言:
由于浮点型运算的底层逻辑并不是遵循十进制运算,所以有时运算会出现bug,使用BigDecimal可以解决这个问题。打好基础,daydayup!
BigDecimal
BigDecimal是什么?
BigDecimal是一个浮点型运算的类,用于解决浮点型运算结果失真的问题
BigDecimal的使用方式
1,创建对象,调用有参数构造器初始化对象:public BigDecimal(double val); (将double转换为BigDecimal)
2,创建对象,调用有参数构造器初始化对象:public BigDecimal(String val); (将String转成BigDecimal)
例:如下
注:不建议使用方式1,因为直接把double转化成BigDecimal,同样会引发失真的问题
BigDecimal的常用方式
|-----------------------------------------------------|----------------------|
| 方法名 | 说明 |
| public static BigDecimal valueOf(double val) | 转换double类型 |
| public BigDecimal add(BigDecimal b) | 加法 |
| public BigDecimal subtract(BigDecimal b) | 减法 |
| public BigDecimal multiply(BigDecimal b) | 乘法 |
| public BigDecimal divide(BigDecimal b) | 除法 |
| public BigDecimal divide(另一个BigDecimal对象,精确几位,四舍五入) | 除法,可以控制精确到小数几位 |
| public double doubleValue() | 将BigDecimal转化成double |
例:如下
总结:
使用BigDecimal后一定要转换成double类型。整理结束,撒花!!