![](/img/trans.png)
[英]I keep getting this error: error: incompatible types: possible lossy conversion from double to 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.