通过bigdecimal实现一个计算器
时间: 2024-10-01 13:10:04 浏览: 47
使用`BigDecimal`来实现一个计算器主要是为了处理高精度的小数运算,因为`BigDecimal`类提供了任意精度的十进制数,可以避免浮点数计算中的精度丢失问题。下面是一个简单的四则运算的`BigDecimal`计算器示例:
```java
import java.math.BigDecimal;
public class BigDecimalCalculator {
public static void main(String[] args) {
BigDecimal num1 = new BigDecimal("100.5");
BigDecimal num2 = new BigDecimal("34.7");
// 加法
BigDecimal sum = add(num1, num2);
System.out.println("加法: " + sum);
// 减法
BigDecimal difference = subtract(num1, num2);
System.out.println("减法: " + difference);
// 乘法
BigDecimal product = multiply(num1, num2);
System.out.println("乘法: " + product);
// 除法
BigDecimal quotient = divide(num1, num2);
System.out.println("除法 (保留两位小数): " + quotient.setScale(2));
}
private static BigDecimal add(BigDecimal a, BigDecimal b) {
return a.add(b);
}
private static BigDecimal subtract(BigDecimal a, BigDecimal b) {
return a.subtract(b);
}
private static BigDecimal multiply(BigDecimal a, BigDecimal b) {
return a.multiply(b);
}
private static BigDecimal divide(BigDecimal a, BigDecimal b) throws ArithmeticException {
if (!b.compareTo(BigDecimal.ZERO) == 0) {
return a.divide(b, RoundingMode.HALF_UP); // 使用四舍五入模式
} else {
throw new ArithmeticException("除数不能为零");
}
}
}
```
在这个例子中,我们定义了四个基本的算术操作函数,并通过`divide`方法时添加了错误检查,防止除以零的情况。
阅读全文