我被分配输出一个double:

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

10-08 00:37