DecimalFormat 不格式化 double 值等于 0
DecimalFormat not formatting a double having value equal to 0
我需要将双精度格式设置为小数点后两位,为此我使用 DecimalFormat 如下:
Double c = 12.01;
DecimalFormat df2 = new DecimalFormat("##.##");
System.out.println("c = "+df2.format(c));
并且它工作得非常好,直到并且除非双精度值具有 0(或 0.0、00.00 或 0.00)值。在这种情况下,它仅将 double 格式化为平面 0。
我在格式化时遗漏了什么吗?
请建议。
尝试使用 '##.00'
,因为 #
表示可选数字,而 0
表示必填数字
是的。您可以使用 0
格式化元素而不是 #
,后者涉及 0 填充,例如
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
我需要将双精度格式设置为小数点后两位,为此我使用 DecimalFormat 如下:
Double c = 12.01;
DecimalFormat df2 = new DecimalFormat("##.##");
System.out.println("c = "+df2.format(c));
并且它工作得非常好,直到并且除非双精度值具有 0(或 0.0、00.00 或 0.00)值。在这种情况下,它仅将 double 格式化为平面 0。
我在格式化时遗漏了什么吗? 请建议。
尝试使用 '##.00'
,因为 #
表示可选数字,而 0
表示必填数字
是的。您可以使用 0
格式化元素而不是 #
,后者涉及 0 填充,例如
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