[英]loss of precision-->Required double but compiler required int?
我是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;
}
錯誤:
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。
由於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;
}
sum
數據類型為int,而您的方法期望返回的數據類型為double。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.