• BigDecimal 类型的计算方法


    1、加法(add)

    使用 add 方法将两个 BigDecimal 对象相加。

    BigDecimal num1 = new BigDecimal("10.5");
    BigDecimal num2 = new BigDecimal("20.3");
    BigDecimal result = num1.add(num2);
    System.out.println("加法结果:" + result); // 输出:加法结果:30.8
    
    • 1
    • 2
    • 3
    • 4

    2、减法(subtract)

    使用 subtract 方法将一个 BigDecimal 对象减去另一个。

    BigDecimal num1 = new BigDecimal("30.8");
    BigDecimal num2 = new BigDecimal("10.5");
    BigDecimal result = num1.subtract(num2);
    System.out.println("减法结果:" + result); // 输出:减法结果:20.3
    
    • 1
    • 2
    • 3
    • 4

    3、乘法(multiply)

    使用 multiply 方法将两个 BigDecimal 对象相乘。

    BigDecimal num1 = new BigDecimal("2.5");
    BigDecimal num2 = new BigDecimal("3.2");
    BigDecimal result = num1.multiply(num2);
    System.out.println("乘法结果:" + result); // 输出:乘法结果:8.0
    
    • 1
    • 2
    • 3
    • 4

    4、除法(divide)

    使用 divide 方法将一个 BigDecimal 对象除以另一个。需要指定舍入规则,例如保留小数位数。

    BigDecimal num1 = new BigDecimal("10.0");
    BigDecimal num2 = new BigDecimal("3.0");
    BigDecimal result = num1.divide(num2, 2, RoundingMode.HALF_UP);
    System.out.println("除法结果:" + result); // 输出:除法结果:3.33
    
    • 1
    • 2
    • 3
    • 4

    5、取余数(remainder)

    使用 remainder 方法获取一个 BigDecimal 对象除以另一个的余数。

    BigDecimal num1 = new BigDecimal("10.0");
    BigDecimal num2 = new BigDecimal("3.0");
    BigDecimal remainder = num1.remainder(num2);
    System.out.println("余数:" + remainder); // 输出:余数:1.0
    
    • 1
    • 2
    • 3
    • 4

    6、幂运算(pow )

    pow方法返回当前 BigDecimal 的 n 次幂

    BigDecimal base = new BigDecimal("2");
    int exponent = 3;
    BigDecimal result = base.pow(exponent);
    System.out.println("幂运算结果:" + result); // 输出 8
    
    • 1
    • 2
    • 3
    • 4

    7、比较(compareTo)

    使用 compareTo 方法比较两个 BigDecimal 对象的大小。返回值为负数、零或正数,分别表示第一个对象小于、等于或大于第二个对象。

    BigDecimal num1 = new BigDecimal("10.0");
    BigDecimal num2 = new BigDecimal("15.0");
    int comparisonResult = num1.compareTo(num2);
    if (comparisonResult < 0) {
        System.out.println("num1 小于 num2");
    } else if (comparisonResult == 0) {
        System.out.println("num1 等于 num2");
    } else {
        System.out.println("num1 大于 num2");
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    8、取最大值(max)

    从多个 BigDecimal 对象中选取最大的值。

    BigDecimal num1 = new BigDecimal("10.5");
    BigDecimal num2 = new BigDecimal("20.3");
    BigDecimal maxNum = num1.max(num2);
    System.out.println("Max: " + maxNum); // 输出:Max: 20.3
    
    • 1
    • 2
    • 3
    • 4

    9、取最小值(min)

    从多个 BigDecimal 对象中选取最小的值。

    BigDecimal num1 = new BigDecimal("10.5");
    BigDecimal num2 = new BigDecimal("20.3");
    BigDecimal minNum = num1.min(num2);
    System.out.println("Min: " + minNum); // 输出:Min: 10.5
    
    • 1
    • 2
    • 3
    • 4

    10、绝对值(abs)

    返回一个 BigDecimal 对象的绝对值。

    BigDecimal num = new BigDecimal("-10.5");
    BigDecimal absNum = num.abs();
    System.out.println("Absolute Value: " + absNum); // 输出:Absolute Value: 10.5
    
    • 1
    • 2
    • 3

    11、取负数(negate)

    返回一个 BigDecimal 对象的负数。

    BigDecimal num = new BigDecimal("10.5");
    BigDecimal negNum = num.negate();
    System.out.println("Negative Value: " + negNum); // 输出:Negati
    
    • 1
    • 2
    • 3

    这些是 BigDecimal 类的一些常见数学计算方法。使用 BigDecimal 可以避免浮点数运算中的精度问题,特别适用于需要高精度计算的金融和科学应用。在使用 BigDecimal 进行计算时,应格外小心处理异常情况,如除以零或其他可能导致异常的情况。

  • 相关阅读:
    UE5 虚幻引擎 如何使用构造脚本(Construction Script)? 构造脚本的奥秘!
    技术干货|利用昇思MindSpore复现ICCV2021 Best Paper Swin Transformer
    C++树详解
    (原创)【B4A】一步一步入门09:xCustomListView,加强版列表、双行带图片、复选框按钮等自定义列表项(控件篇05)
    [算法刷题笔记]二叉树练习(2):对称二叉树有关的练习
    黑苹果安装心得
    【JAVASE】日期时间类
    IDEA 生成 javadoc
    工程制图试题
    kafka的“直接内存映射技术”,有没有内存修改数据的问题?
  • 原文地址:https://blog.csdn.net/weixin_53902288/article/details/132625125