import java.math.BigDecimal;
import java.math.RoundingMode;
public class BigDecimalArithmeticDemo {
public static void main(String[] args) {
BigDecimal a = new BigDecimal("1234.567");
BigDecimal b = new BigDecimal("10.5");
// Addition
BigDecimal sum = a.add(b);
System.out.println("Addition: " + a + " + " + b + " = " + sum);
// Subtraction
BigDecimal diff = a.subtract(b);
System.out.println("Subtraction: " + a + " - " + b + " = " + diff);
// Multiplication
BigDecimal product = a.multiply(b);
System.out.println("Multiplication: " + a + " * " + b + " = " + product);
// Division (with scale and rounding)
try {
BigDecimal quotient = a.divide(b, 4, RoundingMode.HALF_UP);
System.out.println("Division: " + a + " / " + b + " = " + quotient);
} catch (ArithmeticException e) {
System.out.println("Exact division not possible: " + e.getMessage());
}
// Remainder
BigDecimal remainder = a.remainder(b);
System.out.println("Remainder: " + a + " % " + b + " = " + remainder);
// Power (raise to an integer power)
BigDecimal power = b.pow(3); // b^3
System.out.println("Power: " + b + " ^ 3 = " + power);
}
}