BigDecimal 除法 divide方法参数,各参数作用,详细~

本文详细介绍了如何使用BigDecimal进行多参数的除法操作,包括指定除数、保留小数位数和设置舍入模式。通过实例演示了不同舍入模式对结果的影响,并展示了ROUND_UNNECESSARY模式的精确特性。
摘要由CSDN通过智能技术生成

BigDecimal 多参自定义除法

public BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)

    public static void main(String[] args){
        BigDecimal b1 = new BigDecimal(10.005);
        BigDecimal b2 = new BigDecimal(2);
        //参数1 为除数
        //scale 为计算所得商的位数
        //roundingMode 共8种0,1,2 ,3,4,5,6,7
        System.out.println(b1.divide(b2, 3, BigDecimal.ROUND_UNNECESSARY));
    }

其中,第三位参数为除法模式,分以下8种,可自传值,也可使用BigDecimal的枚举,都一样的,如下:

  • 0 - ROUND_UP 远离0的方向

    例:1.1->2 1.5->2 1.8->2 -1.1->-2 -1.5->-2 -1.8->-2

  • 1 - ROUND_DOWN 向0的方向移动

    例:1.1->1 1.5->1 1.8->1 -1.1->-1 -1.5->-1 -1.8>-1

  • 2 - ROUND_CEILING 舍位时往正无穷方向移动

    例:1.1->2 1.5->2 1.8->2 -1.1->-1 -1.5->-1 -1.8->-1

  • 3 - ROUND_FLOOR 与CEILING相反,往负无穷

    例:1.1->1 1.5->1 1.8->1 -1.1->-2 -1.5->-2 -1.8->-2

  • 4 - ROUND_HALF_UP 最常见的四舍五入

  • 5 - ROUND_HALF_DOWN 以5为分界线,或曰五舍六入

  • 6 - ROUND_HALF_EVEN 同样以5为分界线,如果是5,则前一位变偶数1.15->1.2 1.16->1.2 1.25->1.2 1.26->1.3

  • 7 - ROUND_UNNECESSARY 舍入模式可以断言所请求的操作具有精确的结果,因此不需要舍入。如果在产生不精确结果的操作上指定了这种舍入模式,则会抛出 {@code ArithmeticException}。

BigDecimal中的divide方法是用来进行除法运算的。该方法的声明是public BigDecimal divide(BigDecimal divisor,int scale, int roundingMode)。其中,divisor是除数,scale是计算所得商的小数点后的位数,roundingMode是近似处理模式。通过调用该方法,可以得到除法的结果。例如,在以下示例代码中,我们创建了两个BigDecimal对象b1和b2,然后使用divide方法进行除法运算,并指定了小数点后的位数和近似处理模式: ``` BigDecimal b1 = new BigDecimal(10.005); BigDecimal b2 = new BigDecimal(2); BigDecimal result = b1.divide(b2, 3, BigDecimal.ROUND_UNNECESSARY); System.out.println(result); ``` 在这个例子中,我们将b1除以b2,将结果保留3位小数,并且指定了不需要进行近似处理的模式。运行这段代码,将会输出除法的结果。123 #### 引用[.reference_title] - *1* [BigDecimaldivide方法详解](https://blog.csdn.net/weixin_40203707/article/details/120525529)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *2* [BigDecimal 除法 divide方法参数,各参数作用详细~](https://blog.csdn.net/w_monster/article/details/112008308)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *3* [JavaBigDecimal类的常见用法及针对divide()方法的多种处理模式](https://blog.csdn.net/m0_54701273/article/details/128435485)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

了迹奇有没

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值