【问题标题】:JAVA OptionPane.showMessageDialog output formatting for decimal十进制的 JAVA JOptionPane.showMessageDialog 输出格式
【发布时间】:2013-01-23 15:17:39
【问题描述】:

我对 Java 非常陌生,并且正在使用 GUI 显示消息。所以如果使用控制台

System.out.printf("Your total montly bill is $%.2f",  totalCost); 

以应有的方式给我输出十进制。我试图用这个做同样的事情,但我在小数点后得到更多的数字,因为 totalCost 是双精度类型。如何格式化输出以仅显示小数点后两位?谢谢。

JOptionPane.showMessageDialog(null, "Your monthly payment is " + totalCost);

【问题讨论】:

    标签: java swing joptionpane number-formatting decimalformat


    【解决方案1】:

    你也可以这样做: JOptionPane.showMessageDialog(this, "你的月供是" + totalCost);

    【讨论】:

      【解决方案2】:
      DecimalFormat df = new DecimalFormat("#.##");
                      String hour = JOptionPane.showInputDialog("Please input your hourly salary: ");
                      double hr = Double.parseDouble(hour);
                      double dr = hr * 8;             
                      double wr = hr * 40;
                      double mr = hr * 160;
                      double yr = mr * 12;
      
          JOptionPane.showMessageDialog(null, "Yearly: " + df.format(yr) + " / " + "Monthly: "
                          + df.format(mr) + " / " + "Weekly: "+ df.format(wr) + " / " + "Hour: " + df.format(hr),
                          "Yearly Salary Calculator by the hour", JOptionPane.OK_OPTION, icon);
      

      【讨论】:

      • 请解释您的解决方案。 df 是什么?如果描述了 OP,如何使用它?
      • 您可以通过用加号 (+) 链接它们来显示更多信息,然后您可以通过分隔所有元素来继续使用 JOptionPane 格式(null、消息、标题、消息类型、图标)逗号 (,)。 “/”只是一个分隔符,以更形象的方式分配答案。
      • 仍然 - 不知道您的代码示例中的 df 是什么,您的答案根本没有用。另外 - 已经有一个使用DecimalFormat的例子。
      • df 只是我分配给 DecimalFormat 的变量。当您声明变量时,它将如下所示: DecimalFormat df(或您选择的任何内容) = new DecimalFormat("#.##");或者您选择作为参数的任何格式。
      【解决方案3】:
      double d = 1.234567;
      DecimalFormat df = new DecimalFormat("#.##");
      JOptionPane.showMessageDialog(null, "Your monthly payment is " + df.format(d));
      System.out.println(df.format(d));
      

      Class DecimalFormat API

      【讨论】:

        【解决方案4】:

        你可以这样做:

        JOptionPane.showMessageDialog(null, String.format("Your monthly payment is $%.2f",  totalCost));
        

        【讨论】:

        • 哈,这很简单!非常感谢!! :)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多