Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用printf()时出现问题_Java_Printf - Fatal编程技术网

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);