Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.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
MyPayroll3.java:44:错误:找不到符号_Java - Fatal编程技术网

MyPayroll3.java:44:错误:找不到符号

MyPayroll3.java:44:错误:找不到符号,java,Java,问题出在以“overtimePay=”开头的底线上。它说“找不到符号”并指向hourlyRate。我已将其设置为全局变量,现在不知道该怎么办。您没有名为hourlyRate的方法。如果在标识符后加括号,编译器会假定它是一个方法,向它传递1.5,而不是1.5的乘法 如果要乘以1.5,则在括号中包含数字的常规数学表示法不起作用;乘法运算符*必须是显式的 改变 public class MyPayroll3 { //Declare variable static String firstN

问题出在以“overtimePay=”开头的底线上。它说“找不到符号”并指向hourlyRate。我已将其设置为全局变量,现在不知道该怎么办。

您没有名为
hourlyRate
的方法。如果在标识符后加括号,编译器会假定它是一个方法,向它传递
1.5
,而不是1.5的乘法

如果要乘以1.5,则在括号中包含数字的常规数学表示法不起作用;乘法运算符
*
必须是显式的

改变

public class MyPayroll3 {
   //Declare variable
   static String firstName, lastName, course;
   static String[] args = {};
   static double hourlyRate, stateTaxRate, federalTaxRate, ficaRate, stateTaxTotal, federalTaxTotal, ficaTotal, regularPay,overtimePay, grossPay, netPay;
   static int hoursWorked;

   public static void main(String[] args) {
      getCommandLineArguments(args); 
      calculations();
   }

   public static void getCommandLineArguments(String [] args){
      //Assign command-line arguments to variables
      int k = args[0].indexOf(" ");
      firstName = args[0].substring(0,k); 
      lastName  = args[0].substring(k + 1);
      course = args[1];
      hoursWorked = Integer.parseInt(args[2]);
      hourlyRate = Double.parseDouble(args[3]);
      stateTaxRate = Double.parseDouble(args[4]);
      federalTaxRate = Double.parseDouble(args[5]);
      ficaRate = Double.parseDouble(args[6]);
   }   

   //Calculate taxes and income
   public static void calculations() { 
      stateTaxTotal = grossPay - (grossPay*stateTaxRate);
      federalTaxTotal = grossPay - (grossPay*federalTaxRate);
      ficaTotal = grossPay - (grossPay*ficaRate); 
      double taxes = stateTaxTotal + federalTaxTotal + ficaTotal;
      regularPay = (hoursWorked * hourlyRate) - overtimePay;
      overtimePay = (hoursWorked % 40) * hourlyRate(1.5);
      grossPay = regularPay + overtimePay;
      netPay = grossPay - taxes;
   }


}


若要说明
hoursWorked
至少为80,您可能需要从
hoursWorked
中减去40,而不是使用mod运算符。

您在哪里定义
hourlyRate()
?完整堆栈跟踪hourlyRate是一个双精度的,而不是一个方法。您的意思是:
overtimePay=(hoursWorked%40)*hourlyRate*1.5;
?您的代码很长,没有显示错误。下次,请提供一个简单的工作示例:
overtimePay = (hoursWorked % 40) * hourlyRate(1.5);
overtimePay = (hoursWorked % 40) * hourlyRate * 1.5;