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