Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有双变量的Java错误_Java - Fatal编程技术网

带有双变量的Java错误

带有双变量的Java错误,java,Java,我正在尝试向程序添加交互式输入。我花了好几个小时才弄明白。这是代码- // This program calculates an employee's take home pay. public class Payrolls import javax.swing.JOptionPane; { public static void main(String args[]) { String salaryStr

我正在尝试向程序添加交互式输入。我花了好几个小时才弄明白。这是代码-

// 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);
它的
Double.parseDouble
,而不是
Double.parseDouble


parseDouble
方法来自类

试试Double.parseDouble而不是Double.parseDouble

您在其他任何地方都不会遇到任何问题,然后在此代码中:

 salaryString = JOptionPane.showInputDialog ("Enter Salary Here: ");
    salary = Double.parseDouble (salaryString);
    numDependentsString = JOptionPane.showInputDialog     ("Enter Number of Dependents: ");
    numDependents = Double.parseDouble (numDependentsString);
您使用的不是包装类Double,而是Double.parseDouble

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


我的意思是改用Double.parseDouble。

使用Double中的wrapper类

Double.parseDouble(salaryString)
换成

salary = Double.parseDouble (salaryString);

记住,Java是区分大小写的。因此,它会将double和double视为两个单独的项目。在本例中,您试图使用Double,但错误地指定了Double。这是一个非常常见的Java问题,不要为此感到难过,只需注意Java是区分大小写的。快乐编码

现在,要解决这个问题:

线路

 salary = double.parseDouble (salaryString);
应该读

 salary = Double.parseDouble (salaryString);

“numDependents=Double.parseDouble(numDependentsString);”行也是如此。

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

19表示第19行,然后仔细阅读它告诉你的内容。您通常不必阅读错误打印输出的前几行。只修复一个问题,当您修复它时,再次编译,希望这将是一个不同的错误来解决。重复此操作,直到没有错误为止

我知道有一种忽视信息的倾向,因为它们太长了,但说真的,它们很有效

现在,为了让事情变得更简单,下载Eclipse。它是免费和容易的,它会很快建立起来。在Eclipse中创建您的程序。它会在每个错误下划线,当你把鼠标放在错误线上时,它会准确地告诉你出了什么问题


这真的让事情变得容易多了。

请用double代替double。Java是纯区分大小写的语言。double是一个关键字,它指示变量的数据类型,并且没有方法。Double是java中的类,具有类似parseDouble(String str)的方法。此方法返回字符串值的双精度值

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

继续编码

“19”表示错误出现在第19行。如果您开始使用eclipse之类的编辑器,这将使您的生活更加轻松。无论编译错误是什么,在任何情况下都不应使用浮点变量来保存货币量。使用
BigDecimal
 salary = Double.parseDouble (salaryString);
salary = double.parseDouble(salaryString);
numDependentsString = JOptionPane.showInputDialog("Enter Number of Dependents: ");
numDependents = double.parseDouble(numDependentsString);