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

标签 java math input equation

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

我拥有所有输入值的所有代码,但我在方程本身方面遇到了麻烦。 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. 您正在对字符串进行数学运算,但不能,您需要 double 类型
    • Double.parseDouble(sc.nextLine()); 读取一行并解析为 double (好处:避免一般情况下返回行错误,这是一个好习惯)
    • sc.nextDouble() 直接读取 double
  2. 每个来源仅使用一台扫描仪
  3. 打印和扫描仪询问之间保持良好的顺序
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);

关于java - 用户输入问题的代码双方程错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54154748/

相关文章:

c++ - 没有错误,但没有输出

javascript - 使用javascript检查重叠圆形元素的函数?

c++ - 求函数的根但不求渐近线

java - 如何为用户输入无效添加异常(exception)?用户应输入名称,如果输入不是名称,则需要抛出异常

java - 使用 Gora 到 MongoDB 将字符串映射保存到列表

c# - 如何在程序中逐位执行除法?

javascript - 在同位素中以任何顺序匹配单词(使用输入值)

matlab - 在 Matlab 中验证两个相关输入的最佳实践

java - 在java中读取XML

java - 如果Java程序中存在内存泄漏,它会在任务栏中显示高内存使用率吗?