java中double型如何控制有效数字输出位数或精度?

如题所述

java中 double 类型只是一个简单类型,是不能其输出位数及精度是固定的
可以利用其它方法进行位数输出,如:

public static void main(String[] args) {
// 1. 使用 String.format() 方法
double data = 11.8982389283293;
System.out.println(String.format("%.2f", data));

// 2. 使用 printf 输出
System.out.printf("%.2f", data);

// 3. 使用 DecimalFormat 对象格式化
DecimalFormat format = new DecimalFormat("#.00");
System.out.println(format.format(data));
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2019-09-20

//方法一
NumberFormat nFormat=NumberFormat.getNumberInstance();
nFormat.setMaximumFractionDigits(2);//设置小数点后面位数为
System.out.println(nFormat.format(3.1415););


方法二
double d = 14.7155;
DecimalFormat df0 = new DecimalFormat("###");
DecimalFormat df1 = new DecimalFormat("###.0");
DecimalFormat df2 = new DecimalFormat("###.00");
System.out.println(df0.format(d));
System.out.println(df1.format(d));
System.out.println(df2.format(d));
double test = Math.round(d);
System.out.println(test);

本回答被网友采纳
相似回答