bigdecimal的舍去方式都有什么

在Java中,BigDecimal 提供了多种舍去方式,主要通过 setScale 方法来实现。以下是常见的舍去方式:

  1. ROUND_UP(向上取整):无论小数部分是什么,只要存在,就向上取整。

    • 使用:BigDecimal.ROUND_UP
  2. ROUND_DOWN(向下取整):直接舍去小数部分,不论其大小。

    • 使用:BigDecimal.ROUND_DOWN
  3. ROUND_CEILING(向上取整,正数):对于正数,向上取整;对于负数,向下取整。

    • 使用:BigDecimal.ROUND_CEILING
  4. ROUND_FLOOR(向下取整,负数):对于正数,向下取整;对于负数,向上取整。

    • 使用:BigDecimal.ROUND_FLOOR
  5. ROUND_HALF_UP(四舍五入):如果小数部分大于或等于 0.5,则向上取整;否则向下取整。

    • 使用:BigDecimal.ROUND_HALF_UP
  6. ROUND_HALF_DOWN(五舍六入):如果小数部分大于 0.5,则向上取整;小于或等于 0.5 则向下取整。

    • 使用:BigDecimal.ROUND_HALF_DOWN
  7. ROUND_HALF_EVEN(银行家舍入):也称为“偶数舍入”,如果小数部分等于 0.5,则舍入到最接近的偶数。

    • 使用:BigDecimal.ROUND_HALF_EVEN

import java.math.BigDecimal;
import java.math.RoundingMode;

public class BigDecimalExample {
    public static void main(String[] args) {
        BigDecimal bd = new BigDecimal("2.675");
        
        // ROUND_HALF_UP
        BigDecimal roundedHalfUp = bd.setScale(2, RoundingMode.HALF_UP);
        System.out.println("ROUND_HALF_UP: " + roundedHalfUp); // 2.68
        
        // ROUND_HALF_DOWN
        BigDecimal roundedHalfDown = bd.setScale(2, RoundingMode.HALF_DOWN);
        System.out.println("ROUND_HALF_DOWN: " + roundedHalfDown); // 2.67
        
        // ROUND_HALF_EVEN
        BigDecimal roundedHalfEven = bd.setScale(2, RoundingMode.HALF_EVEN);
        System.out.println("ROUND_HALF_EVEN: " + roundedHalfEven); // 2.68
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值