BigDecimal 怎么使用
时间: 2023-05-11 07:02:50 浏览: 58
BigDecimal 是 Java 中用于高精度计算的类,可以处理比 double 和 float 更大范围的数字。使用 BigDecimal 需要先创建一个 BigDecimal 对象,可以通过传入一个字符串或者一个 double 类型的值来创建。例如:
BigDecimal bd1 = new BigDecimal("123.456"); // 通过字符串创建
BigDecimal bd2 = new BigDecimal(123.456); // 通过 double 类型的值创建
接下来可以使用 BigDecimal 提供的方法进行计算,例如加减乘除等操作。需要注意的是,BigDecimal 的计算结果也是一个 BigDecimal 对象,需要使用其提供的方法获取具体的值。例如:
BigDecimal bd3 = bd1.add(bd2); // 加法
BigDecimal bd4 = bd1.subtract(bd2); // 减法
BigDecimal bd5 = bd1.multiply(bd2); // 乘法
BigDecimal bd6 = bd1.divide(bd2, 2, RoundingMode.HALF_UP); // 除法,保留两位小数,四舍五入
其中,第三个参数 RoundingMode.HALF_UP 表示四舍五入。
相关问题
BigDecimal 使用累加
BigDecimal 是 Java 中用于处理高精度数字计算的类,它可以避免浮点数计算时出现的精度问题。在对 BigDecimal 进行累加时,需要使用 add() 方法将要累加的数值作为参数传入,然后将返回的结果再赋值给原来的 BigDecimal 对象,代码示例如下:
```java
BigDecimal sum = BigDecimal.ZERO; // 初始化累加变量
sum = sum.add(new BigDecimal("1.23")); // 累加 1.23
sum = sum.add(new BigDecimal("4.56")); // 累加 4.56
sum = sum.add(new BigDecimal("7.89")); // 累加 7.89
System.out.println(sum); // 输出累加结果
```
上面的代码中,我们首先使用 BigDecimal.ZERO 初始化了一个累加变量 sum,然后依次使用 add() 方法将 1.23、4.56 和 7.89 累加到 sum 变量中。最后输出 sum 变量的值,即得到了累加的结果。
BigDecimal 使用sum
如果要对一组BigDecimal类型的数据进行求和,可以使用reduce方法来实现。reduce方法接受一个BinaryOperator类型的参数,用于将两个元素合并成一个元素。在求和时,可以使用add方法将两个BigDecimal相加。以下是一个示例代码:
```
List<BigDecimal> numbers = Arrays.asList(new BigDecimal("1.0"), new BigDecimal("2.0"), new BigDecimal("3.0"));
BigDecimal sum = numbers.stream().reduce(BigDecimal.ZERO, BigDecimal::add);
System.out.println(sum);
```
输出结果为:6.0