簡體   English   中英

在 Java 中不斷收到“可能的從 double 到 int 的有損轉換”錯誤

[英]Keep getting "possible lossy conversion from double to int" error in Java

public static int calcCarbonFootprint ( double[] person ) {

    double kgCO2;
    double metricTons;
    kgCO2 = (double)(calcTransit(person[3]));
    kgCO2 += (double)calcAutoOwnership(person[2]);
    kgCO2 += (double)calcAutoUsage(person[0],person[1]);
    metricTons = kgCO2/KGS_PER_METRIC_TON;

    return (int)metricTons;
}

這是我試圖添加的功能,但我不斷收到這些錯誤:

./CarbonCalculator.java:142: error: incompatible types: possible lossy conversion from double to int
    kgCO2 = (double)(calcTransit(person[3]));
                                       ^
./CarbonCalculator.java:143: error: incompatible types: possible lossy conversion from double to int
    kgCO2 += (double)calcAutoOwnership(person[2]);
                                             ^
./CarbonCalculator.java:144: error: incompatible types: possible lossy conversion from double to int
    kgCO2 += (double)calcAutoUsage(person[0],person[1]);
                                                   ^

我嘗試了許多不同的方法,但都以相同的錯誤告終。 我可以得到一些指導嗎?

該錯誤是由於試圖將一個 64 位的double數傳遞給一個 32 位的int參數引起的。

您可以更改calc*方法的參數以接受double而不是int 這樣計算將盡可能精確。

...或者您可以將person[n]int 一些來自double型數的數值數據會隨着計算方法的准確性而消失。

示例代碼: https : //ideone.com/ghgRo9

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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