我应该使用什么格式显示2位小数或没有?

时间:2011-03-30 21:28:22

标签: java decimal printf

我正在尝试使用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字节时,不用说看起来很糟糕。

2 个答案:

答案 0 :(得分:4)

使用DecimalFormat执行此操作:

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

答案 1 :(得分:0)

您可以尝试使用%.3g进行试验,它应该大致按照您的要求进行,但包括掩码中.左侧的数字。

如果这对您不起作用,您也可以搜索.00并使用String.replace将其删除。

经过一些实验编辑:

String.format("%.2f\n", value).replace(".00", "")应该做你想要的。