2013-05-05 38 views
1

我想制作一个程序来计算公路旅行的MPG。我已经完成了所有的布局,但每次运行我都会得到0.0。我可以使用一些帮助。我不得不让MPG和totalMpg浮动,所以我可以做浮点除法,如果这样做没有意义的话。我司的声明总是出来0

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

我建议你用'double'作为'float'很少有足够的精度。它可能会在这种情况下,但我建议习惯使用'双'作为一个好习惯。 – 2013-05-05 15:03:26

+1

您对totalMpg的计算完全错误。这是对指数加权平均值的估计,但我怀疑这不是你想要的。 – 2013-05-05 15:04:36

+0

那你怎么去计算totalMpg呢? – Blank1268 2013-05-05 15:32:46

回答

2

miles如果大于gas更大,因为两者都是int,则结果将是0,当分配给所述浮子可变mpg其将被存储为0.0

计算时,你或许应该声明为浮动或投gas

mpg = ((float)gas)/miles ;