首页 > 解决方案 > 操作顺序可能存在问题,不明白为什么这不是打印所需的输出。需要澄清

问题描述

变量gallonsLeft 实际上并没有被使用,它只是为了说明为什么一个设置有效而另一个无效。请参阅代码中的注释。在计算器上我得到相同的输出,不知道为什么我不在程序中。也许与使用的数据类型有关?我...

    System.out.println("Tank Capacity: ");
    int tankTotal = input.nextInt();
    System.out.println("Gauge reading: ");
    int userGauge = input.nextInt();
    System.out.println("Miles per gallon: ");
    int mpg = input.nextInt();

    int gallonsLeft = ((userGauge * tankTotal)/100); // This prints out the correct number 
    int gallonsLeft = ((userGauge/100)* tankTotal); // This prints out 0
    System.out.println(gallonsLeft);

标签: javamath

解决方案


问题是因为 (userGauge/100) 结果不是 int。int 部分为零,因此您需要为此选择另一种数据类型:

double gallonsLeft = ((userGauge/100)* tankTotal); // This prints out now the correct number

推荐阅读