java中如何输出小数
格式化输出小数
使用 System.out.printf 或 String.format 控制小数位数,通过格式说明符 %.nf(n 为保留位数):

double num = 3.1415926;
System.out.printf("保留两位小数: %.2f", num); // 输出: 3.14
String formatted = String.format("%.3f", num); // 转为字符串
使用 DecimalFormat 类
通过 DecimalFormat 自定义格式,如指定小数位数或千分位分隔符:

import java.text.DecimalFormat;
double value = 12345.6789;
DecimalFormat df = new DecimalFormat("#.##");
System.out.println(df.format(value)); // 输出: 12345.68
四舍五入处理
结合 Math.round 或 BigDecimal 实现精确舍入:
double num = 2.71828;
long rounded = Math.round(num * 100); // 保留两位小数
System.out.println(rounded / 100.0); // 输出: 2.72
import java.math.BigDecimal;
BigDecimal bd = new BigDecimal("2.71828").setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println(bd.doubleValue()); // 输出: 2.72
科学计数法输出
使用 printf 的 %e 或 %g 格式符:
double sciNum = 0.00012345;
System.out.printf("%.3e", sciNum); // 输出: 1.234e-04
注意事项
- 浮点数精度问题:避免直接比较
double/float,建议使用BigDecimal。 - 区域化格式:需处理本地化差异时,使用
NumberFormat类。






