BigDecimal加减乘除比较大小保留小数位

Posted 抓手

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BigDecimal加减乘除比较大小保留小数位相关的知识,希望对你有一定的参考价值。

简单加减乘除

    public static void main(String[] args) {
        BigDecimal a = new BigDecimal("8");
        BigDecimal b = new BigDecimal("4");
        System.out.println("a = " + a);
        System.out.println("b = " + b);

        // 加法
        BigDecimal add =  a.add(b);
        System.out.println("a + b = " + add);

        // 减法
        BigDecimal subtract = a.subtract(b);
        System.out.println("a - b = " + subtract);

        // 乘法
        BigDecimal multiply = a.multiply(b);
        System.out.println("a × b = " + multiply);

        // 除法
        BigDecimal divide = a.divide(b);
        System.out.println("a ÷ b = " + divide);
    }

保留小数位的加减乘除

    public static void main(String[] args) {
        BigDecimal a = new BigDecimal("8.21");
        BigDecimal b = new BigDecimal("4.53");
        System.out.println("a = " + a);
        System.out.println("b = " + b);

        // 加法
        BigDecimal add = a.add(b);
        System.out.println("a + b = " + add);

        // 减法
        BigDecimal subtract = a.subtract(b);
        System.out.println("a - b = " + subtract);

        // 乘法(保留两位小数,四舍五入)
        BigDecimal multiply = a.multiply(b).setScale(2, BigDecimal.ROUND_HALF_UP);
        System.out.println("a × b = " + multiply);

        // 除法(保留两位小数,四舍五入)
        BigDecimal divide = a.divide(b, 2, BigDecimal.ROUND_HALF_UP);
        System.out.println("a ÷ b = " + divide);
    }

比较大小

    public static void main(String[] args) {
        BigDecimal a = new BigDecimal("8.21");
        BigDecimal b = new BigDecimal("4.53");

        // 等同于 a == b
        System.out.println(a.compareTo(b) == 0);
        // 等同于 a < b
        System.out.println(a.compareTo(b) < 0);
        // 等同于 a > b
        System.out.println(a.compareTo(b) > 0);

        System.out.println("----------");

        BigDecimal c = new BigDecimal("-1");
        BigDecimal d = new BigDecimal("-1");

        // 等同于 a == b
        System.out.println(c.compareTo(d) == 0);
        // 等同于 a <= b
        System.out.println(c.compareTo(d) <= 0);
        // 等同于 a >= b
        System.out.println(c.compareTo(d) >= 0);
    }

保留小数位的方式:BigDecimal保留小数的其他处理方式

以上是关于BigDecimal加减乘除比较大小保留小数位的主要内容,如果未能解决你的问题,请参考以下文章

java中的BigDecimal使用

精确计算工具类,提供加减乘除的计算

BigDecimal 基本使用 比较大小和加减乘除

BigDecimal 基本使用 比较大小和加减乘除

BigDecimal的常被忽略的问题

bigDecimal保留后两位小数