您的位置:

BigDecimal的减法运算

一、BigDecimal的加减乘除

import java.math.BigDecimal;

public class BigDecimalDemo {
    public static void main(String[] args) {
        BigDecimal num1 = new BigDecimal("10.25");
        BigDecimal num2 = new BigDecimal("5.55");
        
        // 加法
        BigDecimal sum = num1.add(num2);
        System.out.println("num1 + num2 = " + sum);
        
        // 减法
        BigDecimal sub = num1.subtract(num2);
        System.out.println("num1 - num2 = " + sub);
        
        // 乘法
        BigDecimal mul = num1.multiply(num2);
        System.out.println("num1 * num2 = " + mul);
        
        // 除法
        BigDecimal div = num1.divide(num2, 2, BigDecimal.ROUND_HALF_UP);
        System.out.println("num1 / num2 = " + div);
    }
}

在BigDecimal类中,加减乘除都有对应的方法。其中需要注意的是,除法运算时需要指定保留的小数位数和舍入模式。

二、BigDecimal转String类型

import java.math.BigDecimal;

public class BigDecimalDemo {
    public static void main(String[] args) {
        BigDecimal num = new BigDecimal("10.25");
        
        String str = num.toString();
        System.out.println(str);
    }
}

将BigDecimal转为String类型可以使用其toString()方法。

三、BigDecimal保留两位小数

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

public class BigDecimalDemo {
    public static void main(String[] args) {
        BigDecimal num = new BigDecimal("10.254");
        
        BigDecimal result = num.setScale(2, RoundingMode.HALF_UP);
        System.out.println(result);
    }
}

在保留小数位数时,可以使用setScale方法,在参数中指定需要保留的小数位数和舍入模式。

四、BigDecimal判断大小

import java.math.BigDecimal;

public class BigDecimalDemo {
    public static void main(String[] args) {
        BigDecimal num1 = new BigDecimal("10.25");
        BigDecimal num2 = new BigDecimal("5.55");
        BigDecimal num3 = new BigDecimal("10.25");
        
        int result1 = num1.compareTo(num2);
        System.out.println(result1); // 输出1
        int result2 = num1.compareTo(num3);
        System.out.println(result2); // 输出0
    }
}

在BigDecimal类中,compareTo方法可以比较两个BigDecimal的大小。返回值为1表示第一个数比第二个数大,为0表示两个数相等,为-1表示第一个数比第二个数小。

五、BigDecimal除法

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

public class BigDecimalDemo {
    public static void main(String[] args) {
        BigDecimal num1 = new BigDecimal("10.254");
        BigDecimal num2 = new BigDecimal("3");
        
        BigDecimal result = num1.divide(num2, 2, RoundingMode.HALF_UP);
        System.out.println(result);
    }
}

在BigDecimal的除法运算中,需要注意除数不能为0。同时在设置保留小数位数时,需要设置舍入模式,避免精度误差。

六、BigDecimal乘法

import java.math.BigDecimal;

public class BigDecimalDemo {
    public static void main(String[] args) {
        BigDecimal num1 = new BigDecimal("10.254");
        BigDecimal num2 = new BigDecimal("3");
        
        BigDecimal result = num1.multiply(num2);
        System.out.println(result);
    }
}

在BigDecimal的乘法运算中,与加减运算类似,只需要调用multiply方法即可。

七、BigDecimal取反

import java.math.BigDecimal;

public class BigDecimalDemo {
    public static void main(String[] args) {
        BigDecimal num = new BigDecimal("-10.254");
        
        BigDecimal result = num.negate();
        System.out.println(result);
    }
}

在BigDecimal中,取反可以使用negate方法。

八、BigDecimal减法

import java.math.BigDecimal;

public class BigDecimalDemo {
    public static void main(String[] args) {
        BigDecimal num1 = new BigDecimal("10.25");
        BigDecimal num2 = new BigDecimal("5.55");
        
        BigDecimal result = num1.subtract(num2);
        System.out.println(result);
    }
}

BigDecimal的减法运算与加法运算类似,直接调用subtract方法即可。

九、BigDecimal使用方法

以上展示了BigDecimal的多个方法以及使用场景。一般而言,在需要涉及到精度计算的场景下,使用BigDecimal能够避免精度丢失问题,确保运算的准确性。同时在进行BigDecimal的加减乘除运算时,一定要注意保留小数位数和舍入模式,尽量避免精度误差的产生。