我是Java的初学者,遇到此错误。
编写一个名为pay的方法,该方法接受TA的薪水的实数,并接受TA本周工作的小时数的整数,并返回支付TA多少钱。例如,通话费用pay(5.50,6)应该返回33.0。
在8点以上的任何小时内,TA都应获得“加班”工资的1½正常工资,例如,话费(4.00,11)应返回(4.00 * 8)+(6.00 * 3)或50.0。
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;
}
错误:
数据类型之间不匹配。当您尝试将实数(double)存储到作为整数(int)的变量或参数中时,通常会发生这种情况。
可能会损失精度
发现:双
要求:int
sum =(y小时)*(1.5 * x)+(小时* x);
^
1个错误
19警告
但是错误指向+号,这有什么问题?
它说发现:双。但我希望输出翻倍。但是它按要求说int。
最佳答案
由于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;
}
关于java - 精度损失->需要double,但是编译器需要int吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16078584/