BigDecimal使用

本文详细介绍了BigDecimal类在Java中的使用,包括如何创建BigDecimal对象、进行加减乘除运算以及获取绝对值。重点讲解了除法的精确计算方法,如使用divide()函数并指定精度和舍入模式。还展示了如何处理乘法结果中的额外零,并通过stripTrailingZeros().toPlainString()方法去除。博客内容涵盖了BigDecimal在财务和精确计算场景中的重要应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BigDecimal

  • 使用:
    • 创建:
    	BigDecimal num1 = new BigDecimal(0.005);
        BigDecimal num2 = new BigDecimal(1000000);
        BigDecimal num3 = new BigDecimal(-1000000);
        //尽量用字符串的形式初始化
        BigDecimal num12 = new BigDecimal("0.005");
        BigDecimal num22 = new BigDecimal("1000000");
        BigDecimal num32 = new BigDecimal("-1000000");
    

加法 add()函数 ; 减法subtract()函数 ;
乘法multiply()函数 ; 除法divide()函数 ; 绝对值abs()函数

		//加法
        BigDecimal result1 = num1.add(num2);
 
        //减法
        BigDecimal result2 = num1.subtract(num2);
 
        //乘法
        BigDecimal result3 = num1.multiply(num2);
 
        //绝对值
        BigDecimal result4 = num3.abs();
 
        //除法
        BigDecimal result5 = num2.divide(num1,20,BigDecimal.ROUND_HALF_UP);

除法精确计算:

BigDecimal divideYum = bigDecimalYum.divide(bigDecimalCount, 4, BigDecimal.ROUND_HALF_UP);
参数解释
	第三个参数 BigDecimal.ROUND_HALF_UP 类似于“四舍五入”
	第一个参数 bigDecimalCount 代表被除数
	第二个参数 4  代表精确位数 [0.0005]
	bigDecimalYum  代表除数
	divide    这个方法代表作除法计算
BigDecimal乘法整数去0
				String score = map.get("score").toString();
				BigDecimal bigDecimal = new BigDecimal(score);
				BigDecimal multiply = bigDecimal.divide(new BigDecimal(totalScore), 2, RoundingMode.HALF_UP).multiply(new BigDecimal("100"));
				String s = multiply.stripTrailingZeros().toPlainString()+"%";   //去0的方法

去0效果:

“percentage”: “25%”
原始结果:
“percentage”: “25.00%”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值