2013-05-05 35 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 ;