【问题标题】:formatNumber : how to add 2 decimal digits at the back of numbers?formatNumber : 如何在数字后面添加 2 个十进制数字?
【发布时间】:2010-08-12 07:14:19
【问题描述】:

我正在使用 grails formatNumber,我想以十进制格式显示我的数字。

我想将 10 显示为 10.00 或 0 为 0.00,带 2 个小数位。

怎么做?

【问题讨论】:

    标签: java grails string-formatting


    【解决方案1】:

    我相信您正在寻找如何使用 Grails 的 formatNumber 标记来实现此目的

    <g:formatNumber number="${10}" format="0.00"/>
    <g:formatNumber number="${0}" format="0.00"/>
    

    结果

    10.00
    0.00
    

    formatNumber 标记使用DecimalFormat 作为format 参数

    【讨论】:

      【解决方案2】:

      Java 5?

       String.format("%.2f", (double)value);
      

      Java 4?

       new BigDecimal(value).scale(2, RoundingMode.ROUND_HALF_UP).toString();
      

      (凭记忆,可能有错别字)

      【讨论】:

        【解决方案3】:

        或者使用NumberFormat的方式:

        NumberFormat formatter = new DecimalFormat("0.00");
        Assert.assertEquals("10.00", formatter.format(10));
        Assert.assertEquals("0.00", formatter.format(0));
        Assert.assertEquals("0.10", formatter.format(0.1));
        

        使用 Junit 断言。

        查看documentation for DecimalFormat,了解如何为构造函数创建格式化字符串。

        【讨论】:

          【解决方案4】:

          您应该按照 grails docu 中的描述使用它

             <g:formatNumber number="${value}" minFractionDigits="2"/>
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-12-18
            相关资源
            最近更新 更多