BigDecimal 类型的运算需要使用 BigDecimal 提供的方法,因为它是为高精度数值计算而设计的。使用 BigDecimal 可以避免浮点数运算中可能出现的精度丢失问题。以下是一些常见的 BigDecimal 运算方法:
1.加法(Addition):
BigDecimal num1 = new BigDecimal("10.5");
BigDecimal num2 = new BigDecimal("20.75");
BigDecimal sum = num1.add(num2);
System.out.println("Sum: " + sum);
2.减法(Subtraction):
BigDecimal num1 = new BigDecimal("30.5");
BigDecimal num2 = new BigDecimal("20.75");
BigDecimal difference = num1.subtract(num2);
System.out.println("Difference: " + difference);
3.乘法(Multiplication):
BigDecimal num1 = new BigDecimal("2.5");
BigDecimal num2 = new BigDecimal("4");
BigDecimal product = num1.multiply(num2);
System.out.println("Product: " + product);
4.除法(Division):
BigDecimal num1 = new BigDecimal("15");
BigDecimal num2 = new BigDecimal("3");
// 使用指定的精度和舍入模式
BigDecimal quotient = num1.divide(num2, 2, RoundingMode.HALF_UP);
System.out.println("Quotient: " + quotient);
在除法运算中,你通常需要指定舍入模式(RoundingMode),以及精度(小数点后的位数)。
5.取余(Remainder):
BigDecimal num1 = new BigDecimal("10.5");
BigDecimal num2 = new BigDecimal("3");
BigDecimal remainder = num1.remainder(num2);
System.out.println("Remainder: " + remainder);
6.判断是否大于0
import java.math.BigDecimal;
public class BigDecimalComparison {
public static void main(String[] args) {
BigDecimal num1 = new BigDecimal("30.5");
BigDecimal num2 = new BigDecimal("20.75");
BigDecimal difference = num1.subtract(num2);
// 判断 difference 是否大于 0
if (difference.compareTo(BigDecimal.ZERO) > 0) {
System.out.println("difference is greater than 0");
} else if (difference.compareTo(BigDecimal.ZERO) < 0) {
System.out.println("difference is less than 0");
} else {
System.out.println("difference is equal to 0");
}
}
}