我正在尝试使用 println 将 double 中的小数位数减少到 8,并将最后一位数字四舍五入

im trying to reduce the number of decimals in a double to 8 using println and rounding the last digit up

我被分配输出一个双:

myD=1.0/3.0; //using println as  0.33333334 = 1/3. 

我尝试过使用一些格式设置但没有成功。

//0.33333334 = 1/3; //only using println 

double myD = 1.0/3.0
System.out.println("%0.8f", myD);

0.33333334

使用 DecimalFormat 并将舍入模式设置为始终舍入到 CEILING

double myD = 1.0/3.0;

DecimalFormat df = new DecimalFormat("#.########");
df.setRoundingMode(RoundingMode.CEILING);
System.out.println(df.format(myD)); 

输出:

0.33333334

如果您不需要四舍五入,您可以使用 String.format 而不是得到 0.33333:

System.out.println(String.format("%.8f", myD));  

输出:

0.33333333

当然也可以是 System.out.format("%.8f", myD);,但要求使用 System.out.println