首页 > 解决方案 > 用户输入问题的代码双方程错误

问题描述

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

我拥有所有输入值的所有代码,但方程式本身有问题。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;
                                     ^

标签: javamathinputequation

解决方案


  1. 你正在对字符串进行数学运算,你不能,你需要double输入
    • Double.parseDouble(sc.nextLine());读取一行并解析为 a double(好处:通常避免返回行错误,养成良好的习惯)
    • sc.nextDouble()直接读取double
  2. 每个来源仅使用一个扫描仪
  3. 有一个良好的顺序print和扫描仪询问
Scanner sc = new Scanner(System.in);

System.out.print("Please enter your distance (miles): ");
String distanceInMiles = Double.parseDouble(sc.nextLine());
System.out.println("The distance (miles): " + distanceInMiles);

System.out.print("Please enter vehicle's fuel efficiency (mpg): ");
String fuelEfficiency = Double.parseDouble(sc.nextLine());
System.out.println("Fuel efficiency (mpg):" + fuelEfficiency);

System.out.print("Please enter the price per gallon (dollars): ");
String pricePerGallon = Double.parseDouble(sc.nextLine());
System.out.println("Price per gallon (dollars): " + pricePerGallon);

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

推荐阅读