2017-05-05 65 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