我正在处理应用程序中的许多双精度值,是否有任何简单的方法来处理Java中十进制值的格式?
还有其他比这更好的方法了吗
DecimalFormat df = new DecimalFormat("#.##");
我基本上想做的是格式化double值,例如
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",恰好是两个小数位。
"00"
如果你使用"#.##"(#表示“可选”数字),它将删除尾随的零-即new DecimalFormat("#.##").format(3.0d);仅打印"3",而不是"3.00"。
"#.##"
#
new
DecimalFormat("#.##").format(3.0d)
"3"
"3.00"
一种替代方法是使用String.format:
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相同方式工作的。
System.out.format
java.util.Formatter