我正在尝试制作一个程序来计算公路旅行中的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++;
}
}
}
答案 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) ;