Java 使用printf()时出现问题
这是到目前为止我的代码Java 使用printf()时出现问题,java,printf,Java,Printf,这是到目前为止我的代码 import java.util.Scanner; public class two { public static void main(String[] args) { System.out.println("--- Stage 1 Taxi Fare Calculator ---"); Scanner user_input = new Scanner( System.in ); System.out.pri
import java.util.Scanner;
public class two {
public static void main(String[] args) {
System.out.println("--- Stage 1 Taxi Fare Calculator ---");
Scanner user_input = new Scanner( System.in );
System.out.print("Enter in pick up time: ");
System.out.flush();
String startTime = user_input.next();
System.out.print("Enter in pickup point: ");
System.out.flush();
String pickUp = user_input.next();
System.out.print("Enter in drop off point: ");
System.out.flush();
String dropOff = user_input.next();
System.out.print("Enter in trip distance in km: ");
System.out.flush();
Double tripDist = user_input.nextDouble();
user_input.nextLine();
Double fareRate = 1.60;
Double baseFare = tripDist * fareRate;
Double totalFare = baseFare;
String m1 = "The pickup point was: %15s%n";
String m2 = "The drop off point was: %13s%n";
String m3 = "The pickup time was: %11s%n";
String m4 = "Estimated distance (km): %12f%n";
String m5 = "Fare Charged: $%11.2f%n";
String m6 = "Base fare: $%15.2f%n";
String m7 = "Total fare: $%14.2f%n";
String m8 = "Plus surcharges: $%14.2f%n";
System.out.println(" --- Taxi fare details --- ");
System.out.printf(m1, pickUp);
System.out.printf(m2, dropOff);
System.out.printf(m3, startTime);
System.out.printf(m4, tripDist);
System.out.printf(m5, fareRate);
System.out.printf(m6, baseFare);
System.out.printf(m7, totalFare);
}
}
EDIT2(最终版):我在我的代码中添加了更多内容,现在得到了你们在上面看到的内容,现在我所需要做的就是添加附加费,所以当某个时间是一定的成本,而且该区域也有附加费,无论如何,不要在那里寻求帮助,只是让你们知道你们已经帮了很多忙,我感谢你们。顺便说一句,如果我没有像现在这样多地编辑这些内容,我深表歉意。如果您在读取变量的同一行上声明变量,那么代码可能会更短,如果您没有
println()
,那么您应该flush()
,也就是说
System.out.print("Enter in pick up time: ");
System.out.flush();
String startTime = user_input.next();
System.out.print("Enter in pickup point: ");
System.out.flush();
String pickUp = user_input.next();
System.out.print("Enter in drop off point: ");
System.out.flush();
String dropOff = user_input.next();
System.out.print("Enter in trip distance in km: ");
System.out.flush();
Double tripDist = user_input.nextDouble();
user_input.nextLine();
然后,您需要在格式字符串(s)中包含输出类型
接下来,当调用printf()
时,应该传递参数,而不是串联参数-
System.out.printf(m1, pickUp);
System.out.printf(m2, dropOff);
System.out.printf(m3, startTime);
System.out.printf(m4, tripDist);
System.out.printf(m5, fareRate);
System.out.printf(m6, baseFare);
System.out.printf(m7, totalFare);
然后我想它会像你期望的那样工作。只是一个注释,叫做user\u input.nextLine()在你的nextDouble()
之后加上code>,否则你会拉一个空白输入。啊,好的,谢谢你,流氓:)你应该加一个双倍票价=0.35编码>或提示用户输入费率(为什么不使用原语类型double
?),然后double fare=行程距离*费率代码>。啊,你太棒了,非常感谢。这里的每个人都帮了大忙:D
System.out.printf(m1, pickUp);
System.out.printf(m2, dropOff);
System.out.printf(m3, startTime);
System.out.printf(m4, tripDist);
System.out.printf(m5, fareRate);
System.out.printf(m6, baseFare);
System.out.printf(m7, totalFare);