我正在尝试使用printf格式化数字,但无法找到正确的掩码。
例如:
class F {
public static void main( String ... args ) {
p(2.123123);
p(2.0);
}
public static void p(double d ) {
System.out.printf("%.2f",d);
System.out.println();
}
}
将打印:
2.12
2.00
我应该使用什么面具来打印
2.12
2
或者如果可能的话:
2.12
2
背景:
我将用它来显示文件大小。目前看起来像这样:
23/03/11 12:15 0.00 TEST/
30/03/11 10:35 2.57 kb picture-3651.jpg
12/04/11 14:49 7.31 mb reference.pdf
当文件是目录且其大小为0字节时,不用说看起来很糟糕。
答案 0 :(得分:4)
使用DecimalFormat
执行此操作:
DecimalFormat df = new DecimalFormat("#.##");
答案 1 :(得分:0)
您可以尝试使用%.3g
进行试验,它应该大致按照您的要求进行,但包括掩码中.
左侧的数字。
如果这对您不起作用,您也可以搜索.00
并使用String.replace
将其删除。
经过一些实验编辑:
String.format("%.2f\n", value).replace(".00", "")
应该做你想要的。