【问题标题】:How to set decimals to only 2 digits in Doubles? [duplicate]如何在双打中将小数设置为只有 2 位? [复制]
【发布时间】:2013-04-24 12:12:42
【问题描述】:

在我的回复中,我得到的值是80.00000

DecimalFormat df = new DecimalFormat("##.##");
TextField.setText(df.format(Double.parseDouble(custom.getValue())));

我的问题是我得到了 80.000,我正在做一个 parseDouble,它将返回一个原始的 double 类型,我正在将此 double 格式设置为 2 decimals

为什么我得到的是80 而不是80.00

我改变了我的方式并尝试了这个。

TextField.setText(String.format("%2f",Double.parseDouble(custom.getValue()))); 

现在我得到的是80.000000 而不是80.00

【问题讨论】:

    标签: java android


    【解决方案1】:

    应该是"%.2f" 而不是"%2f"

    TextField.setText(String.format("%.2f",Double.parseDouble(custom.getValue())));
    

    您忘记添加.

    【讨论】:

    • 谢谢。它对我有用..
    【解决方案2】:

    为什么我得到的是 80 而不是 80.00?

    第一个例子应该是:

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

    否则任何不重要的小数将被抑制。

    【讨论】:

      【解决方案3】:

      java.text.NumberFormat 是一个不错的选择

      final NumberFormat nf = NumberFormat.getInstance();
      nf.setMinimumFractionDigits(2);
      nf.setMaximumFractionDigits(2);
      nf.setGroupingUsed(false);
      System.out.println(nf.format(123456789.123456789));
      

      【讨论】:

        【解决方案4】:

        在 String.format 参数中将 %2f 更改为 %.2f

        【讨论】:

          猜你喜欢
          • 2018-03-09
          • 2013-06-09
          • 2011-12-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-02-12
          • 2020-07-24
          • 2011-04-27
          相关资源
          最近更新 更多