bigdecimal正确用法_Bigdecimal常见各种用法
时间: 2023-07-31 18:11:12 浏览: 118
BigDecimal是Java中用于高精度计算的类,它可以处理任意精度的浮点数,并且避免了使用double或float所带来的精度问题。下面是BigDecimal的常见用法:
1. 创建BigDecimal对象
可以使用BigDecimal的构造函数来创建BigDecimal对象,其中可以传入一个字符串表示数字或者一个double类型的值。
例如:
```java
BigDecimal bd1 = new BigDecimal("12345678901234567890.123456789");
BigDecimal bd2 = new BigDecimal(1234567890.123456789);
```
2. 进行基本的算术运算
BigDecimal支持加、减、乘、除等基本的算术运算,可以使用add、subtract、multiply、divide等方法进行计算。
例如:
```java
BigDecimal bd1 = new BigDecimal("1.2");
BigDecimal bd2 = new BigDecimal("2.3");
BigDecimal result = bd1.add(bd2); // 加法
result = bd1.subtract(bd2); // 减法
result = bd1.multiply(bd2); // 乘法
result = bd1.divide(bd2); // 除法
```
3. 设置精度和舍入模式
可以使用setScale方法设置BigDecimal对象的精度,并且可以设置舍入模式。
例如:
```java
BigDecimal bd = new BigDecimal("1.23456789");
bd = bd.setScale(3, RoundingMode.HALF_UP); // 设置精度为3,舍入模式为四舍五入
System.out.println(bd); // 输出结果为1.235
```
4. 比较大小
可以使用compareTo方法比较两个BigDecimal对象的大小,返回值为-1、0、1,表示小于、等于、大于。
例如:
```java
BigDecimal bd1 = new BigDecimal("1.234");
BigDecimal bd2 = new BigDecimal("1.235");
int result = bd1.compareTo(bd2); // 比较大小
if (result < 0) {
System.out.println("bd1 < bd2");
} else if (result == 0) {
System.out.println("bd1 = bd2");
} else {
System.out.println("bd1 > bd2");
}
```
5. 转换为其他数据类型
可以使用doubleValue、intValue、longValue等方法将BigDecimal对象转换为其他数据类型。
例如:
```java
BigDecimal bd = new BigDecimal("123.456");
double d = bd.doubleValue(); // 转换为double类型
int i = bd.intValue(); // 转换为int类型
long l = bd.longValue(); // 转换为long类型
```
以上就是BigDecimal的常见用法,可以根据实际需要进行使用。
阅读全文