BigDecimal 保留三位有效数字
时间: 2024-04-24 20:19:09 浏览: 76
BigDecimal是Java中的一个类,用于处理高精度的十进制数。要保留三位有效数字,可以使用BigDecimal的setScale方法来设置精度。
以下是保留三位有效数字的示例代码:
```java
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal number = new BigDecimal("123.456789");
BigDecimal result = number.setScale(3, BigDecimal.ROUND_HALF_UP);
System.out.println(result);
}
}
```
在上面的代码中,我们创建了一个BigDecimal对象number,并将其设置为"123.456789"。然后使用setScale方法设置精度为3,并指定了舍入模式为ROUND_HALF_UP(四舍五入)。最后打印出结果。
输出结果为:
```
123.457
```
相关问题
double 只保留三位
在Java中,如果你希望将一个`double`类型的数值保留三位小数,你有几种方法可以实现。以下是一些常见的做法:
1. **使用`String.format()`方法**:这是最简单的方法之一。你可以使用`String.format()`方法来格式化你的`double`值,并指定要保留的小数位数。例如:
```java
double number = 3.1415926;
String formattedNumber = String.format("%.3f", number); // 结果是 "3.142"
```
2. **使用`DecimalFormat`类**:`DecimalFormat`类提供了更灵活的方式来格式化数字,包括小数点后的位数。例如:
```java
import java.text.DecimalFormat;
double number = 3.1415926;
DecimalFormat df = new DecimalFormat("#.000");
String formattedNumber = df.format(number); // 结果是 "3.142"
```
3. **使用`BigDecimal`类**:如果你需要进行精确的数学计算并保留特定的小数位数,可以使用`BigDecimal`类。例如:
```java
import java.math.BigDecimal;
import java.math.RoundingMode;
double number = 3.1415926;
BigDecimal bd = new BigDecimal(Double.toString(number));
bd = bd.setScale(3, RoundingMode.HALF_UP); // 四舍五入到三位小数
double roundedNumber = bd.doubleValue(); // 结果是 3.142
```
这三种方法都可以有效地将`double`类型的数值保留三位小数,具体选择哪种方法取决于你的需求和偏好。
阅读全文