簡體   English   中英

精度損失->需要double,但是編譯器需要int嗎?

[英]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;
}

對於第二個錯誤,如果您查看類Mathpi()不存在,則必須調用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM