PrintStream类型中的方法println(double)不适用于参数(String,double)

时间:2013-08-15 19:34:39

标签: java string variables double

以下是代码:

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但我在标题中得到错误。

5 个答案:

答案 0 :(得分: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);

这称为“连接”。请阅读this Java trail了解详情。

修改:您还可以通过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可以被视为“格式(%)为数字(f),带有2位小数(.2)。” $前面的%仅用于显示,顺便说一句,除了说“放一个$ here”之外,它不是格式字符串的一部分。您可以在Formatter javadocs

中找到格式规范

答案 1 :(得分:4)

您正在寻找

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

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

答案 2 :(得分: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);

答案 3 :(得分:0)

这会有所帮助:

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

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

答案 4 :(得分:0)

当您使用,代替+,即

时,会发生这种情况

使用这个:

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

而不是

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