我是java的初学者,遇到了这个错误。
编写一个名为pay的方法,该方法接受TA工资的实数和TA本周工作小时数的整数,并返回支付TA的金额。例如,看涨期权(5.50,6)应该返回33.0。
对于8岁以上的任何小时,TA应该获得1½正常工资的“加班”工资。例如,通话费(4.00,11)应该返回(4.00 * 8)+(6.00 * 3)或50.0。 / p>
public double pay(double x,int y){
int sum=0;
double hours=8.0;
if(y>hours){
sum=(y-hours)*(1.5*x) + (hours*x);
}
return sum;
}
错误:
You have a mismatch between data types. This often occurs when you try to store a real number (double) into a variable or parameter that is an integer (int). possible loss of precision found : double required: int sum=(y-hours)*(1.5*x) + (hours*x); ^ 1 error 19 warnings
但错误是指向+号。它出了什么问题? 它说发现:双倍。但我希望我的输出是双倍的。但它表示需要int。
答案 0 :(得分:5)
由于sum
是int
并且您在方法中返回sum
,这就是您收到错误的原因。
public double pay(double x,int y){
double sum=0;
double hours=8.0;
if(y>hours){
sum=(y-hours)*(1.5*x) + (hours*x);
}
return sum;
}
对于第二个错误,如果您查看类Math,pi()
不存在,则必须调用Math类的静态变量,因此它应该是:
public double area(double x){
x=Math.PI*Math.pow(x,2);
return x;
}
答案 1 :(得分:0)
sum
的数据类型是int,而您的方法期望返回数据类型为double。