答案:Java中格式化小数常用String.format()、System.out.printf()、DecimalFormat和NumberFormat。1. String.format("%.2f", num)返回保留两位小数的字符串;2. System.out.printf("结果:%.3f%n", value)直接打印并四舍五入到三位小数;3. DecimalFormat可自定义格式,如"#,##0.00"添加千分位并保留两位小数;4. NumberFormat支持区域敏感格式,通过setMaximumFractionDigits(2)等设置小数位数,适用于国际化场景。根据需求选择:简单输出用前两者,复杂格式用DecimalFormat,本地化用NumberFormat。

在Java中格式化小数输出有多种方式,常用的方法包括使用 String.format()、System.out.printf()、DecimalFormat 类以及 NumberFormat。下面介绍几种实用且常见的方法。
1. 使用 String.format() 格式化小数
String.format() 返回一个格式化的字符串,适合需要将结果赋值给变量的场景。
例如,保留两位小数:
double num = 3.1415926;
String formatted = String.format("%.2f", num);
System.out.println(formatted); // 输出:3.14
其中 %.2f 表示浮点数保留两位小数,可按需修改位数,如 %.3f 表示三位小数。
立即学习“Java免费学习笔记(深入)”;
2. 使用 System.out.printf() 直接输出
如果只是想直接打印,printf() 更简洁:
double value = 12.34567;
System.out.printf("结果:%.3f%n", value); // 输出:结果:12.346
%n 是换行符,跨平台安全;%.3f 自动四舍五入到三位小数。
易通(企业网站管理系统)是一款小巧,高效,人性化的企业建站程序.易通企业网站程序是国内首款免费提供模板的企业网站系统.§ 简约的界面及小巧的体积:后台菜单完全可以修改成自己最需要最高效的形式;大部分操作都集中在下拉列表框中,以节省更多版面来显示更有价值的数据;数据的显示以Javascript数组类型来输出,减少数据的传输量,加快传输速度。 § 灵活的模板标签及模
3. 使用 DecimalFormat 灵活控制格式
DecimalFormat 属于 java.text 包,适合需要自定义格式(如千分位、前导零)的场景。
示例:保留两位小数并添加千分位符号
import java.text.DecimalFormat;
double amount = 1234.567;
DecimalFormat df = new DecimalFormat("#,##0.00");
System.out.println(df.format(amount)); // 输出:1,234.57
说明:
- # 表示可选位数
- 0 表示必须显示的位数
- .00 表示至少保留两位小数
4. 使用 NumberFormat 设置区域敏感格式
NumberFormat 更适合国际化应用,能根据地区自动调整格式。
示例:设置小数位数
import java.text.NumberFormat;
double price = 99.9876;
NumberFormat nf = NumberFormat.getInstance();
nf.setMaximumFractionDigits(2);
nf.setMinimumFractionDigits(2);
System.out.println(nf.format(price)); // 输出:99.99
基本上就这些。根据需求选择合适的方式:简单输出用 printf 或 format,复杂格式用 DecimalFormat,国际化考虑用 NumberFormat。不复杂但容易忽略的是四舍五入规则和本地化差异。









