用户输入问题的代码双方程错误
Code Double Equation Error for User Input Problem
我的第一个任务是开发一个代码,允许用户输入他们希望行驶的距离(以英里为单位)、燃油效率和汽油成本的数据。然后创建一个代码以计算旅行的总费用。
我有所有输入值的所有代码,但我在处理方程式本身时遇到了问题。 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;
^
您可以使用 s.nextDouble()
在 double
中获得 distanceInMiles
、fuelEfficiency
和 pricePerGallon
。
之后,您应该能够对这些变量执行 double
操作。
public static void main(String args[])
{
Scanner s = new Scanner(System.in);
System.out.print("Please enter your distance (miles): ");
double distanceInMiles = s.nextDouble();
System.out.println("The distance (miles): " + distanceInMiles);
System.out.print("Please enter vehicle's fuel efficiency (mpg): ");
double fuelEfficiency = s.nextDouble();
System.out.println("Fuel efficiency (mpg):" + fuelEfficiency);
System.out.print("Please enter the price per gallon (dollars): ");
double pricePerGallon = s.nextDouble();
System.out.println("Price per gallon (dollars): " + pricePerGallon);
double tripCost = (distanceInMiles / fuelEfficiency) * pricePerGallon;
System.out.println("The trip cost (dollars): " + tripCost);
}
您正在尝试使用字符串进行计算。您必须从字符串输入中解析双精度数。只需将方程行更改为:
double tripCost = (Double.valueOf(distanceInMiles) / Double.valueOf(fuelEfficiency)) * Double.valueOf(pricePerGallon);
P.S。适当的输入验证将是一个很好的改进。以防用户提供不正确的输入。此外,如评论中所述,无需使用多个 Scanners
。一个就够了
- 你正在对字符串进行数学运算,你不能,你需要
double
类型
Double.parseDouble(sc.nextLine());
读取一行并解析为 double
(好处:通常避免 return 行错误,养成好习惯)
sc.nextDouble()
直接读取 double
- 每个来源仅使用一个扫描器
- 在
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);
我的第一个任务是开发一个代码,允许用户输入他们希望行驶的距离(以英里为单位)、燃油效率和汽油成本的数据。然后创建一个代码以计算旅行的总费用。
我有所有输入值的所有代码,但我在处理方程式本身时遇到了问题。 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;
^
您可以使用 s.nextDouble()
在 double
中获得 distanceInMiles
、fuelEfficiency
和 pricePerGallon
。
之后,您应该能够对这些变量执行 double
操作。
public static void main(String args[])
{
Scanner s = new Scanner(System.in);
System.out.print("Please enter your distance (miles): ");
double distanceInMiles = s.nextDouble();
System.out.println("The distance (miles): " + distanceInMiles);
System.out.print("Please enter vehicle's fuel efficiency (mpg): ");
double fuelEfficiency = s.nextDouble();
System.out.println("Fuel efficiency (mpg):" + fuelEfficiency);
System.out.print("Please enter the price per gallon (dollars): ");
double pricePerGallon = s.nextDouble();
System.out.println("Price per gallon (dollars): " + pricePerGallon);
double tripCost = (distanceInMiles / fuelEfficiency) * pricePerGallon;
System.out.println("The trip cost (dollars): " + tripCost);
}
您正在尝试使用字符串进行计算。您必须从字符串输入中解析双精度数。只需将方程行更改为:
double tripCost = (Double.valueOf(distanceInMiles) / Double.valueOf(fuelEfficiency)) * Double.valueOf(pricePerGallon);
P.S。适当的输入验证将是一个很好的改进。以防用户提供不正确的输入。此外,如评论中所述,无需使用多个 Scanners
。一个就够了
- 你正在对字符串进行数学运算,你不能,你需要
double
类型Double.parseDouble(sc.nextLine());
读取一行并解析为double
(好处:通常避免 return 行错误,养成好习惯)sc.nextDouble()
直接读取double
- 每个来源仅使用一个扫描器
- 在
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);