bigdecimal 保留小数位

public static BigDecimal toBigDecimal(String v) {
    BigDecimal bigDecimal = new BigDecimal(v);
    BigDecimal bigDecimal1 = bigDecimal.setScale(1);
    /**
     * 四舍五入接近零
     */
    BigDecimal bigDecimal2 = bigDecimal.setScale(1, BigDecimal.ROUND_DOWN);
    /**
     * 向远离0的方向舍入
     */
    BigDecimal bigDecimal3 = bigDecimal.setScale(1, BigDecimal.ROUND_UP);
    /**
     * 向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向上舍入, 1.55保留一位小数结果为1.6
     */
    BigDecimal bigDecimal4 = bigDecimal.setScale(1, BigDecimal.ROUND_HALF_UP);
    /**
     * 向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向下舍入, 例如1.55 保留一位小数结果为1.5
     */
    BigDecimal bigDecimal5 = bigDecimal.setScale(1, BigDecimal.ROUND_HALF_DOWN);
    /**
     * 向正无穷方向舍入
     */
    BigDecimal bigDecimal6 = bigDecimal.setScale(1, BigDecimal.ROUND_CEILING);
    /**
     * 向负无穷方向舍入
     */
    BigDecimal bigDecimal7 = bigDecimal.setScale(1, BigDecimal.ROUND_FLOOR);
    /**
     * 向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,如果保留位数是奇数,使用ROUND_HALF_UP ,如果是偶数,使用ROUND_HALF_DOWN
     */
    BigDecimal bigDecimal8 = bigDecimal.setScale(1, BigDecimal.ROUND_HALF_EVEN);
    /**
     * 计算结果是精确的,不需要舍入模式 
     */
    BigDecimal bigDecimal9 = bigDecimal.setScale(1, BigDecimal.ROUND_UNNECESSARY);
    
    return bigDecimal1;
}
 
 

参数定义

ROUND_CEILING 

Rounding mode to round towards positive infinity. 

向正无穷方向舍入 

ROUND_DOWN 

Rounding mode to round towards zero. 

向零方向舍入 

ROUND_FLOOR 

Rounding mode to round towards negative infinity. 

向负无穷方向舍入 

ROUND_HALF_DOWN 

Rounding mode to round towards "nearest neighbor" unless both neighbors are equidistant, in which case round down. 

向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向下舍入, 例如1.55 保留一位小数结果为1.5 

ROUND_HALF_EVEN 

Rounding mode to round towards the "nearest neighbor" unless both neighbors are equidistant, in which case, round towards the even neighbor. 

向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,如果保留位数是奇数,使用

ROUND_HALF_UP 

,如果是偶数,使用ROUND_HALF_DOWN 

ROUND_HALF_UP 

Rounding mode to round towards "nearest neighbor" unless both neighbors are equidistant, in which case round up. 

向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向上舍入, 1.55保留一位小数结果为1.6 

ROUND_UNNECESSARY 

Rounding mode to assert that the requested operation has an exact result, hence no rounding is necessary. 

计算结果是精确的,不需要舍入模式 

ROUND_UP 

Rounding mode to round away from zero. 

向远离0的方向舍入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值