无法将 void 转换为 double

Cannot convert void to double

如果有人能给我一些建议或解决方案,那就太好了。我正在尝试使用代码 运行 汽车 mpg 计算器

当我 运行 我的代码出现如下错误:

U:\gasProj.java:32: error: incompatible types: void cannot be converted   to double
        fuelLeft=bmw.takeTrip(100);

这是我的代码。

public class gasProj{
public static class Automobile{
    double mpg=0;
    Automobile(double a)
    {
        mpg=a;
    }

    private double fuel=0.0;
    public void fillup(double gas)
    {
        fuel=fuel+gas;
    }


    public void takeTrip(double miles)
    {
        fuel=fuel-miles/mpg;
    }

    public double printFuel()
    {
        System.out.println(fuel);
    }
}


    public static void main(String[]args){
        Automobile bmw=new Automobile(24);
        bmw.fillup(20);
        double fuelLeft;
        fuelLeft=bmw.takeTrip(100);

    }

}

您需要将 takeTrip 更改为:

public double takeTrip(double miles)
{
    fuel=fuel-miles/mpg;
    return fuel;
}

目前,takeTrip 没有 return 任何东西,因此您不能将 return 值分配给双精度值。

方法 takeTrip() return 无效,这意味着它 return 没有价值。 为了分配给 fuelLeft,您需要另一种方法来 return fuel 变量值。

public double getFuel(){
  return fuel;
}

现在,fuelLeft 将具有有效值。

fuelLeft = bmw.getFuel();