1

这是代码:

import java.util.Scanner;

public class MoviePrices {
    public static void main(String[] args) {
        Scanner user = new Scanner(System.in);
        double adult = 10.50;
        double child = 7.50;
        System.out.println("How many adult tickets?");
        int fnum = user.nextInt();

        double aprice = fnum * adult;
        System.out.println("The cost of your movie tickets before is ", aprice);

    }
}

我对编码很陌生,这是我的学校项目。我正在尝试在该字符串中打印变量 aprice,但标题中出现错误。

4

5 回答 5

8

而不是这个:

System.out.println("The cost of your movie tickets before is ", aprice);

做这个:

System.out.println("The cost of your movie tickets before is " + aprice);

这称为“串联”。阅读此 Java 跟踪以获取更多信息。

编辑:您也可以通过PrintStream.printf. 例如:

double aprice = 4.0 / 3.0;
System.out.printf("The cost of your movie tickets before is %f\n", aprice);

印刷:

你之前的电影票费用是1.333333

你甚至可以做这样的事情:

double aprice = 4.0 / 3.0;
System.out.printf("The cost of your movie tickets before is $%.2f\n", aprice);

这将打印:

您之前的电影票费用是 1.33 美元

%.2f可以理解为“将 (the ) 格式化为%带有f2 个小数位 (the ) 的数字 (the .2)。” $前面的只是%为了展示,顺便说一句,它不是格式字符串的一部分,除了说“在这里放一个$”。Formatter您可以在javadocs中找到格式规范。

于 2013-08-15T19:36:33.017 回答
4

你正在寻找

System.out.println("The cost of your movie tickets before is " + aprice);

+连接字符串。,分隔方法参数。

于 2013-08-15T19:35:41.910 回答
1

试试这个

System.out.println("The cost of your movie tickets before is " + aprice);

你也可以这样做:

System.out.printf("The cost of your movie tickets before is %f\n", aprice);
于 2013-08-15T19:36:55.960 回答
0

这将有助于:

System.out.println("The cost of your movie tickets before is " + aprice);

原因是,如果您处于昏迷状态,您将发送两个不同的参数。如果您使用上面的行,则将双精度添加到您的字符串中,然后它将参数作为字符串而不是字符串和双精度发送。

于 2013-08-15T19:36:44.117 回答
0

当您使用,而不是+ ie 时会发生这种情况:

使用这个:

System.out.println ("x value" +x);

代替

System.out.println ("x value", +x);
于 2017-01-06T05:39:19.717 回答