Java (double,int)不能应用于(double)
我绞尽脑汁想弄明白这件事 我的主要方法是:Java (double,int)不能应用于(double),java,Java,我绞尽脑汁想弄明白这件事 我的主要方法是: public static void main(String [] args) { double payRate; double grossPay; double netPay; int hours; Scanner input = new Scanner(System.in); System.out.println("Welcome to th
public static void main(String [] args)
{
double payRate;
double grossPay;
double netPay;
int hours;
Scanner input = new Scanner(System.in);
System.out.println("Welcome to the Pay Roll Program");
printDescription();
System.out.print("Please input the pay per hour: ");
payRate = input.nextDouble();
System.out.println("\nPlease input the pay per hour: ");
hours = input.nextInt();
System.out.println("\n");
netPay = computePaycheck(netPay);
System.out.println("The net pay is $" + (netPay));
System.out.println("We hope you enjoyed this program");
System.exit(0);
以及计算净支付的方法
public static double computePaycheck(double payRate, int hours)
{
double grossPay = computePaycheck(payRate*hours);
double netPay = (grossPay - (grossPay *.15));
return netPay;
}
但我得到的错误是“工资支票中的computePaycheck(double,int)不能应用于(double)”
我有点理解这一点,但我想不出一个补救办法
netPay=计算支付支票(netPay)
公共静态双倍计算工资支票(双倍工资率,整数小时)
工资支票中的computePaycheck(double,int)不能应用于(double)
您的方法接受两个参数,一个double和一个int 你只能用这两个打电话(你错过了打电话的小时数) netPay=计算工资支票(工资率,小时) 双倍总工资=工资率*小时
在
computePaycheck
方法中,您有以下行:
double grossPay = computePaycheck(payRate*hours);
这是将一个参数(工资率和小时数的乘积)传递给需要两个参数的computePaycheck
函数。看起来你是想说:
double grossPay = computePaycheck(payRate, hours);
但是你需要小心!这将导致您的程序无限重复!您需要确定如何在不调用此函数的情况下计算工资总额,因为如果您在其内部递归调用它,它将不会返回任何条件。您的方法采用两个参数--
双倍工资率和整小时工资率,但在main方法中调用computePaycheck
时,您只指定了一个double
不清楚您打算执行什么操作,但是不匹配的参数应该会让您知道程序有什么问题。1)您正在使用2个参数调用函数,而只传递1个参数。这将导致编译错误
2) 当您从内部调用computePaycheck时,它将循环并导致堆栈溢出。方法的第一条语句使用一个参数(double)调用computePaycheck
,而computePaycheck使用两个参数(double和int)。这就是代码无法编译的原因
如果您使用double grossPay=computePaycheck(工资率,小时数)来“修复”此问题相反,这将编译,但您将得到无限递归!难道你不想做double grossPay=payRate*hours代码>?我想出来了!我刚刚做了publicstaticdouble-computePaycheck(double-payRate,int-hours){double-grossPay=payRate*hours;double-netPay=(grossPay-(grossPay*.15));return-netPay;}
您正在使用哪个IDE进行开发?