【问题标题】:how to format string to show two decimal places [duplicate]如何格式化字符串以显示两位小数[重复]
【发布时间】:2016-09-28 05:06:50
【问题描述】:

在将双精度解析为字符串并尝试格式化后尝试获得两位小数时,我遇到了一个小问题

  pieChart.setCenterText("$" + "" + ""  +String.format( "% 1$ .2f", Double.toString(dataCost),""));

谁能帮我改进上面的代码行,使它可以显示到小数点后两位?您还会注意到我试图在美元符号和值之间留一个空格

【问题讨论】:

  • 您的代码有什么问题?输出是什么?您的预期是什么?

标签: java android android-layout


【解决方案1】:

你可以使用String.format("%.2f", d),你的double会自动四舍五入

pieChart.setCenterText("$ " + String.format("%.2f", d));

【讨论】:

  • mdDroid 感谢这个工作不会导致应用程序崩溃
  • @Zidane 永远欢迎
  • double totalDistance = distance(Double.parseDouble(prefs.getString("last_lat", null)), Double.parseDouble(prefs.getString("last_lang", null)), location.getLatitude() , location.getLongitude()); Log.d("Distance====>", String.format("%.2f", totalDistance));
【解决方案2】:

这样试试

 pieChart.setCenterText("$ " + String.format("%.2f", dataCost));

【讨论】:

    【解决方案3】:

    以下代码可能会对您有所帮助

    double a = 1.234567;
    double a = 2;
    NumberFormat nf = new DecimalFormat("##.##");
    System.out.println(nf.format(a));
    System.out.println(nf.format(a));
    

    输出将是

    1.23
    2
    

    它只在需要时显示小数位,享受吧! :)

    【讨论】:

      【解决方案4】:

      您可以使用 DecimalFormat。

      import java.text.DecimalFormat; 
      DecimalFormat money = new DecimalFormat ("$0.00");
      System.out.println(money.format(dataCost));
      

      【讨论】:

        【解决方案5】:

        试试这个。

            float val = 1245.235645f;
            double ans = Double.parseDouble(new DecimalFormat("##.##").format(val));
        
            System.out.println(ans);
        

        注意:##.## 表示 .(dot) 后面会显示 2 位数字

        Package  : import java.text.DecimalFormat;
        

        这应该对你有帮助。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-02-12
          • 1970-01-01
          • 2023-03-03
          • 2016-10-04
          • 1970-01-01
          • 2018-02-12
          • 1970-01-01
          相关资源
          最近更新 更多