1

ロードトリップでmpgを計算するプログラムを作成しようとしています。私はそれをすべてレイアウトしましたが、実行するたびにmpgが0.0になります。私はいくつかの助けを使うことができます。mpg と totalMpg を float にする必要があったので、浮動小数点除算を行うことができました。

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++;
    }


}

}
4

2 に答える 2

2

milesが より大きい場合、gasどちらも int であるため、結果は になり、float 変数に代入されたときの0ように格納されます。0.0mpg

gas計算するときは、おそらくそれらを float または cast として宣言する必要があります。

mpg = ((float)gas) / miles ;
于 2013-05-05T13:28:12.343 に答える
2

として宣言したくない場合は、以下の式で にキャストgasします。このようにして、JLS で説明されているように、 Widening Primitive Conversionを利用できます。floatgasfloat

mpg = ((float)gas / miles) ;
于 2013-05-05T13:29:34.250 に答える