无法将void转换为double

时间:2015-01-22 21:28:55

标签: java double converter void

如果有人能给我一些指针或解决方案,那就太好了。我试图让代码运行汽车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);

    }

}

2 个答案:

答案 0 :(得分:2)

您需要将takeTrip更改为:

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

目前,takeTrip不返回任何内容,因此您无法将返回值分配给double。

答案 1 :(得分:1)

方法takeTrip()返回void,这意味着它不返回任何值。 要分配给fuelLeft,您需要另一种方法来返回fuel变量值。

public double getFuel(){
  return fuel;
}

现在,fuelLeft将拥有有效值。

fuelLeft = bmw.getFuel();