繁体   English   中英

DecimalFormat不格式化值等于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)之前,它的工作情况非常好。 在这种情况下,它将双精度格式仅格式化为平面0。

我在格式化方面有什么想念的吗? 请提出建议。

尝试使用'##.00' ,因为#表示可选数字,而0表示必填数字

是。 您可以使用0格式元素来代替涉及0填充的# ,例如

Double c = 0.0d;
DecimalFormat df2 = new DecimalFormat("00.00");
System.out.println("c = "+df2.format(c));  

文档中所述:

Symbol  Location    Localized?  Meaning 
0       Number      Yes         Digit
#       Number      Yes         Digit, zero shows as absent

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM