BigDecimal
- 1、介绍
- 2、加减乘除
- 3、保留小位数
1、介绍
Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。
2、加减乘除
public BigDecimal add(BigDecimal value); //加法
public BigDecimal subtract(BigDecimal value); //减法
public BigDecimal multiply(BigDecimal value); //乘法
public BigDecimal divide(BigDecimal value); //除法
1234567
示例代码:
3、保留小位数
BigDecimal.setScale() //方法用于格式化小数点
1
示例代码:
setScale(1) //表示保留- -位小数,默认用四舍五入方式
setScale(1, BigDecimal.ROUND_ DOWN) //直接删除多余的小数位,如2.35会变成2.3
setScale(1 ,BigDecimal.ROUND_ _UP) //进位处理,2.35变成2.4
setScale(1,BigDecimal.ROUND_ HALF_ _UP) //四舍五入,2.35变成2.4
setScaler(1 ,BigDecimal.ROUND_ HALF_ DOWN) //四舍五入,2.35变成2.3,如果是5则向下舍 (就0.5时和_UP不同)
12345
使用讲解:
ROUND_CEILING
// 向正无穷方向舍入
ROUND_DOWN
//向零方向舍入
ROUND_FLOOR
//向负无穷方向舍入
ROUND_HALF_DOWN
//向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向下舍入, 例如1.55 保留一位小数结果为1.5
ROUND_HALF_EVEN
//向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,如果保留位数是奇数,使用ROUND_HALF_UP ,如果是偶数,使用ROUND_HALF_DOWN
ROUND_HALF_UP
//向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向上舍入, 1.55保留一位小数结果为1.6
ROUND_UNNECESSARY
//计算结果是精确的,不需要舍入模式
ROUND_UP
//向远离0的方向舍入