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进行开发?