java - 我试图使用 println 将 double 中的小数位数减少到 8 并将最后一位数字向上舍入

标签 java double println

我被分配输出 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

关于java - 我试图使用 println 将 double 中的小数位数减少到 8 并将最后一位数字向上舍入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57891388/

相关文章:

C++ double 不能等于两个 int 除法

java - 垃圾收集器意外输出

java - 在换行中打印 Arraylist 中的多个(不是全部)元素 Java

java - 如何在不使用循环的情况下搜索字符串中的字符?

java - 如何查找String是否包含html数据?

java - 检查两个 arraylist 对象是否匹配

c - sprintf() 精度 0.16 错误

java - 无法将 Double 数字放入 BigDecimal 变量中

Swift:格式化控制台日志

java - GXT 中的文件上传会歧视某些文件类型