繁体   English   中英

DecimalFormat模式

[英]DecimalFormat pattern

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" ,这种模式的目的究竟是什么? 我认为它有两个目的

  1. 分组号码,即千分隔符号
  2. 在十进制之后附加两个零,如果缺少十进制,则转换为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位数。

#只有在不是前导零的情况下才会输入数字。 即使它是一个尾随零, 0也会输入一个数字。 如果您想要打印固定数量的数字,也可以在前面使用零。

对于dp之前的零,像0.23这样的小数字将显示为0.23。 如果没有它,你将无法获得前导零,因此它只显示为.23。 如果您有像excel这样的电子表格,也可以在那里查看。

暂无
暂无

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

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