2017-05-05 63 views
0

我正在製作比薩計算器,但我的結果是「7.5美元」而不是「7.50美元」。我用它下面的代碼寫出了這個十進制格式代碼,但它似乎不起作用。有任何想法嗎?Jframe中的十進制格式?

private void calculateButtonActionPerformed(java.awt.event.ActionEvent evt) {             

    double diameter; 
    double labourCost = 1.00; 

    diameter = Double.parseDouble(diameterInput.getText()); 

    double storeCost = 1.50; 
    double materialsCost = 0.50 * diameter; 
    double totalCost = labourCost + storeCost + materialsCost; 

    DecimalFormat x = newDecimalFormat("0.00"); 

    costOutput.setText("The cost of the pizza is $" + totalCost); 

回答

2

您沒有對任何操作使用結果(「x」)。我猜在最後一行用「x」替換「totalCost」會有幫助嗎?

+0

它實際上給了我一個巨大的錯誤「異常的線程‘這一頁的詳細AWT-EventQueue的 - 0’java.lang.UnsupportedOperationException:尚不支持。」 –

+0

然後,您提供的代碼之外的內容會創建一個錯誤 - newDecimalFormat的代碼是什麼,以及「costOutput」的類型是什麼? –

+0

@JessWittman - 應該行「DecimalFormat x = newDecimalFormat(」0.00「);」實際創建一個新的DecimalFormat實例?如果是,則缺少一個空格:「DecimalFormat x =新的DecimalFormat(」0.00「);」。如果「newDecimalFormat」引用了一個方法,我們需要看到該方法的內容。您還應該包含「costOutput」類型 –

0

您需要使用Decimal Formatter將浮點值轉換爲字符串。

// Make a new formatter with your format 
DecimalFormat myFormatter = new DecimalFormat("$##.00"); 
// Convert your number to a human readable string 
String output = myFormatter.format(22.99999f); 
System.out.println(output); // Prints $23.00 

見在各種模式https://docs.oracle.com/javase/tutorial/i18n/format/decimalFormat.html