封装BigDecimal的加减乘除方法,保留自定义位小数的工具。

首先效果展示:

public static void main(String[] args) {
        String s1="2.560";
        String s2="0.525";
        String add = BigDecimalUtils.add(s1, s2, 2);
        String subtract = BigDecimalUtils.subtract(s1, s2,2);
        String multiply = BigDecimalUtils.multiply(s1, s2,  2);
        String divide = BigDecimalUtils.divide(s1, s2, 2);
        System.out.println(s1+"+"+s2+"="+add);
        System.out.println(s1+"-"+s2+"="+subtract);
        System.out.println(s1+"*"+s2+"="+multiply);
        System.out.println(s1+"/"+s2+"="+divide);
    }

输出结果:
在这里插入图片描述

注意:该工具直接复制粘贴到代码里面即可使用

package com.excel.util;

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

/**
 * @author lenovo
 */

public class BigDecimalUtils {


    /**
     * 两数相加保留(Scale)位小数
     * @param s1
     * @param s2
     * @param scale 小数位
     * @return  s1+s2
     */
    public static String add(String s1, String s2, int scale) {
        BigDecimal d1 = new BigDecimal(s1);
        BigDecimal d2 = new BigDecimal(s2);
        BigDecimal result = d1.add(d2);
        result = result.setScale(scale, 4);
        return result.toPlainString();
    }

    /**
     * 两数相减保留(Scale)位小数
     * @param s1
     * @param s2
     * @param scale 小数位
     * @return s1-s2
     */
    public static String subtract(String s1, String s2, int scale) {
        BigDecimal d1 =  new BigDecimal(s1);
        BigDecimal d2 =  new BigDecimal(s2);
        BigDecimal result = d1.subtract(d2);
        result = result.setScale(scale, 4);
        return result.toPlainString();
    }

    /**
     * 两数相乘保留(Scale)位小数
     * @param s1
     * @param s2
     * @param scale 小数位
     * @return s1*s2
     */
    public static String multiply(String s1, String s2, int scale) {
        BigDecimal d1 =  new BigDecimal(s1);
        BigDecimal d2 =  new BigDecimal(s2);
        BigDecimal result = d1.multiply(d2);
        result = result.setScale(scale, 4);
        return result.toPlainString();
    }

    /**
     * 两数相除保留(Scale)位小数
     * @param s1
     * @param s2
     * @param scale 小数位
     * @return s1/s2
     */
    public static String divide(String s1, String s2, int scale) {
        MathContext mc = new MathContext(20, RoundingMode.HALF_UP);
        BigDecimal d1 =  new BigDecimal(s1);
        BigDecimal d2 =  new BigDecimal(s2);
        BigDecimal result = d1.divide(d2, mc);
        result = result.setScale(scale, 4);
        return result.toPlainString();
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

XuDream

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

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

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

打赏作者

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

抵扣说明:

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

余额充值