将Double值格式化为2的最佳方法小数位

可能重复:
将小数点后两位有效数字取整为2位

我在我的应用程序处理大量的双值,是否有任何简单的方法来处理在Java中的十进制值的格式?

还有其他更好的办法吗?

DecimalFormat df = new DecimalFormat("#.##"); 

我想要做的基本上是格式双值的喜欢

 23.59004 to 23.59 35.7 to 35.70 3.0 to 3.00 9 to 9.00 

不,没有更好的办法。

其实你的模式有一个错误。 你想要的是:

 DecimalFormat df = new DecimalFormat("#.00"); 

注意"00" ,意思两位小数。

如果使用"#.##"#表示“可选”数字),它将会删除尾随零 – 即new DecimalFormat("#.##").format(3.0d); 打印只是"3" ,而不是"3.00"

另一种方法是使用String.format

 double[] arr = { 23.59004, 35.7, 3.0, 9 }; for ( double dub : arr ) { System.out.println( String.format( "%.2f", dub ) ); } 

输出:

 23.59 35.70 3.00 9.00 

你也可以使用System.out.format (同样的方法签名),或者创建一个java.util.Formatter ,它以相同的方式工作。