我的部门声明一直是0

时间:2013-05-05 13:26:50

标签: java loops division

我正在尝试制作一个程序来计算公路旅行中的mpg。我已经把它全部布局了但是在每次跑步中我的mpg都得到0.0。我可以使用一些帮助。我不得不制作mpg和totalMpg浮点数,所以我可以做浮点除法,如果这没有意义那么说。

package Gas;

import java.util.Scanner;
import static java.lang.System.out;

public class GasTest {

public static void main(String[] args) {

    int gas;
    int miles;
    int trips;
    float mpg;
    float totalMpg = 0;
    int tripCounter = 1;

    Scanner input = new Scanner (System.in);

    out.println("Please input number of trips");
    trips = input.nextInt();

    while (tripCounter <= trips){
        out.println ("Input gallons of gas used");
        gas = input.nextInt();
        out.println("Input miles traveled on trip");
        miles = input.nextInt();
        mpg = (gas / miles) ;
        out.println("Your MPG for this trip was " + mpg);
        totalMpg = (mpg + totalMpg) / 2;
        out.println("Your overall MPG for all trips is " + totalMpg);
        tripCounter++;
    }


}

}

2 个答案:

答案 0 :(得分:2)

如果miles大于gas,因为它们都是int,结果将是0,当分配给浮点数时,它将被存储为0.0变量mpg

在计算时,你可能应该将它们声明为float或cast gas

mpg = ((float)gas) / miles ;

答案 1 :(得分:2)

如果您不想将gas声明为float,请在下面的表达式中将gas投放到float。 这样您就可以利用Widening Primitive Conversion,如JLS中所述。

mpg = ((float)gas / miles) ;