MyPayroll3.java:44:错误:无法找到符号

问题描述 投票:-2回答:1
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;
   }


}

问题是在以“overtimePay =”开头的底线。它说“找不到符号”,并指出hourlyRate。我做了它一个全局变量,我不知道现在该做什么。

java
1个回答
1
投票

你不会有一个名为hourlyRate方法。如果一个标识符后放置括号,编译器假定它是一种方法,通过1.5传递1.5到它,而不是乘法。

如果您打算在1.5倍增,包括括号中不起作用了一些正常的数学符号;乘法运算*必须是明确的。

更改

overtimePay = (hoursWorked % 40) * hourlyRate(1.5);

overtimePay = (hoursWorked % 40) * hourlyRate * 1.5;

为了说明hoursWorked至少是80,你可能希望只减去40从hoursWorked,而不是使用Mod运算符。

© www.soinside.com 2019 - 2024. All rights reserved.