Java中如何仅保留一位小数的具体实现方法?
- 后端开发
- 2025-10-24
- 4
在Java中,保留一位小数通常有几种方法,包括使用String格式化、DecimalFormat类、NumberFormat类以及使用Math类,以下将详细介绍这些方法,并提供相应的代码示例。
使用String格式化
在Java中,你可以使用String.format()方法来格式化数字,保留一位小数。

使用DecimalFormat类
DecimalFormat类提供了格式化数字的功能,可以设置保留小数位数。
import java.text.DecimalFormat; public class Main { public static void main(String[] args) { double number = 123.456789; DecimalFormat df = new DecimalFormat("#.0"); String formattedNumber = df.format(number); System.out.println(formattedNumber); // 输出: 123.5 } }
使用NumberFormat类
NumberFormat类提供了一个通用的格式化方法,可以格式化数字,包括保留小数位数。
import java.text.NumberFormat; public class Main { public static void main(String[] args) { double number = 123.456789; NumberFormat nf = NumberFormat.getInstance(); nf.setMaximumFractionDigits(1); String formattedNumber = nf.format(number); System.out.println(formattedNumber); // 输出: 123.5 } }
使用Math类
使用Math.round()方法可以四舍五入到指定的小数位数。

public class Main { public static void main(String[] args) { double number = 123.456789; double roundedNumber = Math.round(number * 10) / 10.0; System.out.println(roundedNumber); // 输出: 123.5 } }
表格对比
下面是一个表格,对比了上述几种方法的优缺点:
| 方法 | 优点 | 缺点 |
|---|---|---|
| String.format() | 简单易用 | 适用于简单的格式化 |
| DecimalFormat | 功能强大,可定制性强 | 相对复杂 |
| NumberFormat | 通用的格式化类 | 相对复杂 |
| Math.round() | 简单易用 | 只能四舍五入到整数位 |
FAQs
Q1:如何将整数保留一位小数?
A1: 将整数转换为double类型,然后使用上述任何一种方法进行格式化。
int number = 123; double doubleNumber = number; String formattedNumber = String.format("%.1f", doubleNumber); System.out.println(formattedNumber); // 输出: 123.0
Q2:如何将小数四舍五入到一位小数?
A2: 使用Math.round()方法将小数乘以10,然后四舍五入到整数,最后再除以10。
double number = 123.456789; double roundedNumber = Math.round(number * 10) / 10.0; System.out.println(roundedNumber); // 输出: 123.5
