Java 我的除法结果一直是0
我正在尝试做一个程序来计算一次公路旅行的mpg。我已经准备好了,但是每次跑步我的mpg都是0.0。我需要一些帮助。我必须进行mpg和totalMpg浮点运算,这样我才能进行浮点除法,如果这不合理的话,就这么说吧Java 我的除法结果一直是0,java,loops,division,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) {
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++;
}
}
}
封装气体;
导入java.util.Scanner;
导入静态java.lang.System.out;
公务舱{
公共静态void main(字符串[]args){
int气体;
国际英里;
国际旅行;
浮动mpg;
浮动总mpg=0;
int tripCounter=1;
扫描仪输入=新扫描仪(System.in);
out.println(“请输入行程数”);
trips=input.nextInt();
而(tripCounter如果miles
大于gas
,由于两者均为int,结果将为0
,当分配给浮点变量mpg
时,其将存储为0.0
在计算时,您可能应该将它们声明为float或castgas
:
mpg = ((float)gas) / miles ;
如果miles
大于gas
,因为两者都是int,结果将是0
,当分配给浮动变量mpg
时,将存储为0.0
在计算时,您可能应该将它们声明为float或castgas
:
mpg = ((float)gas) / miles ;
如果不想将gas
声明为float
,请在下面的表达式中将gas
强制转换为float
。
如JLS中所述,您可以利用这种方式
mpg = ((float)gas / miles) ;
如果不想将gas
声明为float
,请在下面的表达式中将gas
强制转换为float
。
如JLS中所述,您可以利用这种方式
mpg = ((float)gas / miles) ;
我建议您使用double
,因为float
很少有足够的精度。在这种情况下可能会这样做,但我建议您习惯使用double
作为一个好习惯。您对totalMpg
的计算完全错误。这是对指数加权平均值的估计,但我怀疑这不是您所说的不知道。那你怎么计算totalMpg呢?我建议你使用double
,因为float
很少有足够的精度。在这种情况下可能会这样,但我建议习惯使用double
作为一个好习惯。你对totalMpg
的计算完全错误。这是对指数增长的估计这是平均值,但我怀疑这不是你想要的。那么你怎么计算总MPG呢?