DecimalFormat模式
问题内容:
public static String formatAmountUpToTwoDecimalNumber(String amount)
{
if(amount==null || "".equals(amount))
{
return "";
}
Double doubleAmount = Double.valueOf(amount);
double myAmount = doubleAmount.doubleValue();
NumberFormat f = new DecimalFormat("###,###,###,###,##0.00");
String s = f.format(myAmount);
return s;
}
"###,###,###,###,##0.00"
,此模式的目的是什么?我相信这有两个目的
- 分组数字,即千位分隔符
- 如果缺少小数点,则在小数点后附加两个零,将23转换为23.00
但是为什么在小数点之前"0"
而不是"#"
小数点之前呢?这个零的目的是什么?谢谢您的帮助。
问题答案:
Symbol Location Localized? Meaning
0 Number Yes Digit
# Number Yes Digit, zero shows as absent
来自:http
:
//docs.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html
所以#
当没有数量未显示。前导0
表示小数点分隔符前至少应有1位数字。