我需要格式化一个双精度到两位小数,为此我使用DecimalFormat,如下所示:
Double c = 12.01;
DecimalFormat df2 = new DecimalFormat("##.##");
System.out.println("c = "+df2.format(c));
并且它工作得非常好,直到并且除非,double具有0(或0.0,00.00或0.00)值。在这种情况下,它只将double格式化为平面0。
格式化方面是否有任何遗漏? 请建议。
答案 0 :(得分:4)
尝试使用'##.00'
,因为#
表示可选数字,而0
表示必填数字
答案 1 :(得分:4)
是。您可以使用0
格式元素而不是#
,其中涉及0-padding,例如
Double c = 0.0d;
DecimalFormat df2 = new DecimalFormat("00.00");
System.out.println("c = "+df2.format(c));
如docs中所述:
Symbol Location Localized? Meaning
0 Number Yes Digit
# Number Yes Digit, zero shows as absent