2012-10-03 91 views
2

我正在尝试将交互式输入添加到程序中。我一直在研究它几个小时,但无法弄清楚。下面是代码 -双变量的Java错误

// This program calculates an employee's take home pay. 
    public class Payrolls 
     import javax.swing.JOptionPane; 

    { 
     public static void main(String args[]) 
     { 
      String salaryString; 
      double salary; 
      double stateTax; 
      double federalTax; 
      String numDependentsString; 
      double numDependents; 
      double dependentDeduction; 
      double totalWithholding; 
      double takeHomePay; 

      salaryString = JOptionPane.showInputDialog ("Enter Salary Here: "); 
      salary = double.parseDouble (salaryString); 
      numDependentsString = JOptionPane.showInputDialog  ("Enter Number of Dependents: "); 
      numDependents = double.parseDouble (numDependentsString); 

      // Calculate state tax here. 
      stateTax = salary * .06; 

      System.out.println("State Tax: $" + stateTax); 
      // Calculate federal tax here. 
      federalTax = salary * .25; 

      System.out.println("Federal Tax: $" + federalTax); 
      // Calculate dependant deduction here. 
      dependentDeduction = (salary * .02) * numDependents; 

      System.out.println("Dependents: $" + dependentDeduction); 
      // Calculate total withholding here. 
      totalWithholding = stateTax + federalTax; 

      // Calculate take home pay here. 
      takeHomePay = salary - totalWithholding + dependentDeduction; 

      System.out.println("Salary: $" + salary); 
      System.out.println("Take Home Pay: $" + takeHomePay); 
      System.exit(0); 
     } 
    } 

我有9个错误 -

Payrolls.java:19: error: class expected 
       salary = double.parseDouble (salaryString); 
           ^
Payrolls.java:19: error: ';' expected 
       salary = double.parseDouble (salaryString); 
             ^
Payrolls.java:19: error: not a statement 
       salary = double.parseDouble (salaryString); 
              ^
Payrolls.java:19: error: ';' expected 
       salary = double.parseDouble (salaryString); 
                 ^
Payrolls.java:21: error: class expected 
       numDependents = double.parseDouble (numDependentsString); 
            ^
Payrolls.java:21: error: ';' expected 
       numDependents = double.parseDouble (numDependentsString); 
               ^
Payrolls.java:21: error: not a statement 
       numDependents = double.parseDouble (numDependentsString); 
                ^
Payrolls.java:21: error: ';' expected 
       numDependents = double.parseDouble (numDependentsString); 
+3

“19”表示错误位于第19行。 –

+1

如果您开始使用像eclipse这样的编辑器会更好,这会让您的生活变得轻松。 –

+0

无论编译错误是什么,**在任何情况下**都不应该使用浮点变量来存储货币数量。使用'BigDecimal'。 – EJP

回答

5
Double.parseDouble (salaryString); 

Double.parseDouble,不double.parseDouble。 :)

parseDouble方法来自Double类。

3

尝试Double.parseDouble不double.parseDouble

0

你没有任何问题,其他地方则在此代码:

salaryString = JOptionPane.showInputDialog ("Enter Salary Here: "); 
    salary = Double.parseDouble (salaryString); 
    numDependentsString = JOptionPane.showInputDialog  ("Enter Number of Dependents: "); 
    numDependents = Double.parseDouble (numDependentsString); 

而不是使用包装类双的,你使用double.parseDouble 。

用上面的代码替换你的代码,你会没事的。

我的意思是使用Double.parseDouble来代替。

0
salary = double.parseDouble (salaryString); 

改变它使用wrapperclass到

salary = Double.parseDouble (salaryString); 
1

记得,Java是区分大小写的。所以,它会将double和Double视为两个单独的项目。在这种情况下,您正尝试使用Double,但错误地指定了double。这是一个非常普遍的Java问题,不要为此感到不满,只需要注意Java是区分大小写的。快乐编码!

现在,为了解决这个问题:

线

salary = double.parseDouble (salaryString); 

应该读

salary = Double.parseDouble (salaryString); 

这同样适用于所述 “numDependents = Double.parseDouble(numDependentsString);”线也是如此。

0

Java有非常非常有用的错误,请仔细阅读它们。

19意味着行号19,然后只是读它是什么告诉你仔细。您通常不必阅读错误打印输出的前几行。只解决这个问题,当你修复它时,再次编译,希望这将是一个不同的错误来解决。重复,直到您用完错误。

我知道有一种倾向,忽略这些信息,因为它们太长了,但是严重的是,它们工作。

现在,为了让事情更简单,请下载Eclipse。它免费且简单 - 它会很快建立起来。在Eclipse中创建你的程序。它会强调每一个错误,当你把鼠标放在错误行上时,它会告诉你到底发生了什么错误。

它确实让事情变得更容易。

1

而不是双倍请使用双。 Java是纯粹的区分大小写的语言。 double是一个关键字,表示变量的数据类型,没有方法。 Double是java中的类,并具有类似parseDouble(String str)的方法。此方法返回字符串值的double值。

salary = double.parseDouble(salaryString); 
numDependentsString = JOptionPane.showInputDialog("Enter Number of Dependents: "); 
numDependents = double.parseDouble(numDependentsString); 

只是继续编码!