Java 我应该使用什么格式来显示2位小数还是不显示?
我正在尝试使用printf格式化一个数字,但找不到正确的掩码 例如:Java 我应该使用什么格式来显示2位小数还是不显示?,java,decimal,printf,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(); }
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字节时,它看起来很糟糕 您可以尝试试用
%.3g
,它应该大致满足您的要求,但在掩码中包含
左侧的数字
如果这对您不起作用,您也可以搜索.00
,然后使用String.replace将其删除
经过一些实验后编辑:
String.format(“%.2f\n”,value.)。替换(“.00”,”)
应该执行您正在查找的操作。使用十进制格式执行以下操作:
DecimalFormat df = new DecimalFormat("#.##");
在我看来是一样的。。。测试文件夹大小为0.00:(因此,应该类似于:printf(“%s%s%s,df.format(humanSize(file.length())、humanDesc(file.length())、file.getName())
?…我已经觉得自己很肮脏了,因为我不得不调用一个额外的函数,其大小和描述已经足够了,但我想没有其他选择了。@noob-你这么说是什么意思?@Bozho:你提供了一个很好的(并且很容易理解)解决方案。它不适用于2.9。格式化它不会显示“2.90”“那么,任何解决方案都适用于所有情况,提供两个小数或不提供小数?谢谢!