DecimalFormat不格式化值等于0的double
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DecimalFormat不格式化值等于0的double相关的知识,希望对你有一定的参考价值。
我需要格式化一个双精度到两个小数位,为此我使用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
格式化元素而不是#
,它涉及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
另一答案
尝试使用'##.00'
,因为#
表示可选数字,而0
表示强制数字
以上是关于DecimalFormat不格式化值等于0的double的主要内容,如果未能解决你的问题,请参考以下文章
double 类型转化为Integer类型 ---DecimalFormat