首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DecimalFormat模式

DecimalFormat模式
EN

Stack Overflow用户
提问于 2011-12-14 10:31:45
回答 3查看 22K关注 0票数 12
代码语言:javascript
复制
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. 到组数,即在小数点后加上1000个分隔符逗号
  2. ,如果缺少小数,则将其转换为23到23.00

但是为什么在十进制之前有"0"而不是"#"呢?这个零的确切目的是什么?谢谢你的帮助。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-14 10:34:07

代码语言:javascript
复制
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位数字。

票数 21
EN

Stack Overflow用户

发布于 2011-12-14 10:34:55

只有当#不是前导零时,它才会放一个数字。0将放置一个数字,即使它是一个尾随的零。如果您想要打印一个固定数量的数字,也可以在前面使用零。

票数 5
EN

Stack Overflow用户

发布于 2011-12-14 10:48:48

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8502976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档