2013-02-07 95 views
2

我對Java非常陌生,玩着用GUI顯示消息。所以如果使用控制檯JAVA OptionPane.showMessageDialog輸出格式化爲十進制

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

給我輸出十進制的方式,它應該。我試圖用這個做同樣的事情,但是我在小數點後面得到更多的數字,因爲totalCost是一個double類型。如何將輸出格式化爲僅顯示小數點後的兩位數字?謝謝。

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

回答

6

你可以這樣做:

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

哈,那很簡單!非常感謝!! :) – user1781482

+0

不客氣:) – Reimeus

4
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

0
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); 
+0

請解釋你的解決方案。什麼是'df'?如何在OP描述的情況下使用它? – NiematojakTomasz

+0

您可以通過將它們與加號(+)進行鏈接來顯示更多信息,然後可以通過用逗號(,)分隔所有元素來繼續JOptionPane格式(空,消息,標題,消息類型,圖標)。 「/」只是一個以更具體的方式分發答案的分隔符。 – monstruono1

+0

仍然 - 不知道你的代碼示例中的「df」是什麼,你的答案根本沒用。此外 - 已經有一個使用'DecimalFormat'的例子。 – NiematojakTomasz

1

你也可以這樣做: JOptionPane.showMessageDialog(這一點,「你每月支付「 + totalCost);