有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

用户输入问题的java代码双方程错误

我的第一项任务是开发一个代码,允许用户输入他们希望行驶的距离(以英里为单位)、燃油效率和汽油成本的数据。然后创建一个代码来计算旅行的总成本

我有所有输入值的所有代码,但方程本身有问题。Java无法识别“/”。我无法理解我在做什么,除非我需要为方程添加更多的代码

import java.util.Scanner;
public class DrivingCost
{
    public static void main(String args[])
    {
        Scanner s = new Scanner(System.in);
        System.out.print("Please enter your distance (miles): ");

      Scanner t = new Scanner(System.in);
      System.out.print("Please enter vehicle's fuel efficiency (mpg): ");

      Scanner u = new Scanner(System.in);
      System.out.print("Please enter the price per gallon (dollars): ");

      String distanceInMiles = s.nextLine();
      System.out.println("The distance (miles): " + distanceInMiles);

      String fuelEfficiency = t.nextLine();
      System.out.println("Fuel efficiency (mpg):" + fuelEfficiency);

        String pricePerGallon = u.nextLine();
        System.out.println("Price per gallon (dollars): " + pricePerGallon);

      double tripCost = (distanceInMiles / fuelEfficiency) * pricePerGallon;
      System.out.println("The trip cost (dollars): " + tripCost);
    }
} 

这就是我一直收到的错误:

DrivingCost.java:32: error: bad operand types for binary operator '/'
  double tripCost = (distanceInMiles / fuelEfficiency) * pricePerGallon;
                                     ^

共 (1) 个答案

  1. # 1 楼答案

    您正在尝试使用字符串进行计算。必须解析字符串输入中的双精度。只需将方程行改为:

    double tripCost = (Double.valueOf(distanceInMiles) / Double.valueOf(fuelEfficiency)) * Double.valueOf(pricePerGallon);
    

    另外,适当的输入验证将是一个很好的改进。以防用户输入错误。此外,如评论中所述,没有必要使用多个Scanners。一个就够了