【问题标题】:String.format() and DecimalFormat not actually formattingString.format() 和 DecimalFormat 实际上没有格式化
【发布时间】:2016-07-29 04:48:33
【问题描述】:

我尝试了两种不同的方法来格式化一些数字,以显示类似于钱,所以显示为小数点后 2 位。 但是,我尝试将 EditText 字段设置为

EditText.setText (String.format("%.2f, number))

还有:

DecimalFormat precision = new DecimalFormat("0.00");
EditText.setText(String.valueOf(precision.format(number));

两者似乎都没有做任何事情,一切仍然默认设置为小数点后 1 位,即)30.0,如果有其他任何设置,它将达到 3 位或更多小数位,即)30.243

【问题讨论】:

  • 没有得到你的问题和你想要什么。??
  • 我认为你的代码是正确的,请仔细检查

标签: android number-formatting string.format decimalformat


【解决方案1】:

@梅森理查森

您是否尝试过 setMinimumFractionDigits() 为您的价值设置最小分数

 DecimalFormat precision = new DecimalFormat("#.##");
 dec.setMinimumFractionDigits(2);
 EditText.setText(String.valueOf(precision.format(number));

【讨论】:

    【解决方案2】:

    如果要将 5.00 显示为 5 和 5.10 显示为 5.1,请使用:

     DecimalFormat formater = new DecimalFormat("#.##"); 
    

    如果您想将 5.00 显示为 5.00 和 5.10 显示为 5.10,请使用:

    DecimalFormat formater = new DecimalFormat("#.00");
    

    【讨论】:

      【解决方案3】:

      试试这个

      DecimalFormat precision = new DecimalFormat("0.##");
      edittext.setText(precision.format(number));
      

      【讨论】:

        【解决方案4】:

        试试这个,

                double rews = 100.89478;
                String ada = new DecimalFormat("##.##").format(rews);
                System.out.println(ada);
        

        输出

        100.89
        

        这里是.##,所以它会给出 2 个小数点。如果要添加 3 表示使用 .###

        【讨论】:

          【解决方案5】:

          您的代码似乎正确,但是请看这里,

            System.out.printf("Floating point number with 2 decimal digits: %.2f\n",1.21312939123); 
            System.out.printf("Floating point number with 3 decimal digits: %.3f\n",1.21312939123);
            System.out.printf("Floating point number with 8 decimal digits: %.8f\n",1.21312939123);
            System.out.printf("String: %s, integer: %d, float: %.6f", "Hello World",89,9.231435);
          

          输出:

          Floating point number with 2 decimal digits: 1.21
          Floating point number with 3 decimal digits: 1.213
          Floating point number with 8 decimal digits: 1.21312939
          String: Hello World, integer: 89, float: 9.231435
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-06-22
            • 2018-01-22
            • 1970-01-01
            相关资源
            最近更新 更多