2017-05-05 11 views
0

私はピザの電卓を作っていますが、結果は「$ 7.50」ではなく「$ 7.5」と表示されます。私は、この10進形式のコードを下に私のコードで書かれているが、それは動作していないようです。何か案は?Jframeの10進数形式ですか?

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」)は何も使用していません。最後の行で "totalCost"を "x"に置き換えると助けになると思いますか?

+0

の詳細については、このページを参照してください。それは実際にAWT-EventQueueの-0「のスレッドで例外 『私に大きな誤差を与えた』 java.lang.UnsupportedOperationExceptionが:まだサポートされていません。」 –

+0

あなたが提供したコードの外の何かがエラーを作成します - newDecimalFormatのコードは何ですか? "costOutput"のタイプは何ですか? –

+0

@JessWittman - 「DecimalFormat x = newDecimalFormat( "0.00");」という行は、実際には新しいDecimalFormatインスタンスを作成する必要がありますか? "DecimalFormat x = new 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

関連する問題