java 四舍五入取两位小数
时间: 2025-05-31 07:46:39 浏览: 18
### Java 中实现四舍五入并保留两位小数的方法
在 Java 中,可以通过多种方式来实现数值的四舍五入并保留两位小数。以下是几种常见的方法:
#### 方法一:使用 `BigDecimal` 类
通过 `BigDecimal` 的 `setScale` 方法可以精确控制小数位数,并指定舍入模式。
```java
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Main {
public static void main(String[] args) {
double value = 111231.5585;
BigDecimal bd = new BigDecimal(value);
double roundedValue = bd.setScale(2, RoundingMode.HALF_UP).doubleValue();
System.out.println(roundedValue); // 输出: 111231.56
}
}
```
此方法利用了 `RoundingMode.HALF_UP` 来实现标准的四舍五入逻辑[^1]。
---
#### 方法二:使用 `DecimalFormat` 类
`DecimalFormat` 是一种格式化数字的方式,它也可以用于对浮点数进行四舍五入处理。
```java
import java.text.DecimalFormat;
public class Main {
public static void main(String[] args) {
double value = 111231.5585;
DecimalFormat df = new DecimalFormat("#.00");
String formattedValue = df.format(value);
System.out.println(formattedValue); // 输出: 111231.56
}
}
```
需要注意的是,`DecimalFormat` 返回的是字符串形式的结果,如果需要将其转换回数字,则需额外操作[^1]。
---
#### 方法三:使用 `String.format` 或 `System.out.printf`
这种方式适合于简单的输出场景,但它不会改变原始变量的值。
```java
public class Main {
public static void main(String[] args) {
double value = 111231.5585;
String result = String.format("%.2f", value);
System.out.println(result); // 输出: 111231.56
}
}
```
这种方法适用于仅需要打印或显示结果的情况,而不涉及进一步计算[^2]。
---
#### 方法四:手动计算
对于某些特定需求,可以直接通过对数值乘法和除法的操作完成四舍五入。
```java
public class Main {
public static void main(String[] args) {
double value = 111231.5585;
double roundedValue = Math.round(value * 100.0) / 100.0;
System.out.println(roundedValue); // 输出: 111231.56
}
}
```
这里的关键在于先放大再缩小的过程,从而达到保留两位小数的效果[^2]。
---
### 总结
以上四种方法各有优劣:
- 如果追求高精度且需要参与后续运算,推荐 **方法一 (`BigDecimal`) 和方法四 (Math)**;
- 若只是单纯为了展示数据,可以选择更简洁的 **方法二 (`DecimalFormat`) 和方法三 (`String.format`)**。
每种方案的选择应基于实际应用场景而定。
阅读全文
相关推荐


















