我在我的应用程序中处理大量的双精度值,是否有任何简单的方法来处理Java中的十进制值的格式?
还有比这更好的方法吗
DecimalFormat df = new DecimalFormat("#.##");
我想做的基本上是格式双值像
23.59004 to 23.59
35.7 to 35.70
3.0 to 3.00
9 to 9.00
我在我的应用程序中处理大量的双精度值,是否有任何简单的方法来处理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。