2016-04-07 17 views
1

このフォーマットで何を入力しても、このエラーメッセージは表示されます。小数点以下2桁を取得するだけで、1ドルの金額を表すことができます。どんな助け?スレッド "main"の例外java.util.UnknownFormatConversionException:Conversion = '。'?

Scanner keyboard=new Scanner(System.in); 

    System.out.println("Enter theater number: "); 
    theater=keyboard.nextInt(); 

    while(theater!=-999) 
    { 
    while(theater==1) 
    { 
     System.out.println("Enter number of adult tickets: "); 
     adultTickets=keyboard.nextInt(); 

     System.out.println("Enter number of child tickets: "); 
     childTickets=keyboard.nextInt(); 

     finalTicketsAdult1+=adultTickets; 
     finalTicketsChild1+=childTickets; 

     System.out.println("Enter theater number: "); 
     theater=keyboard.nextInt(); 
    } 

    while(theater==2) 
    { 
     System.out.println("Enter number of adult tickets: "); 
     adultTickets=keyboard.nextInt(); 

     System.out.println("Enter number of child tickets: "); 
     childTickets=keyboard.nextInt(); 

     finalTicketsAdult2+=adultTickets; 
     finalTicketsChild2+=childTickets; 

     System.out.println("Enter theater number: "); 
     theater=keyboard.nextInt(); 
    } 

    System.out.println("Theater 1\n"); 
    System.out.println("Number of Adult Tickets: " + finalTicketsAdult1); 
    System.out.println("Number of Child Tickets: " + finalTicketsChild1); 
    totalSalesThtr1=(finalTicketsAdult1*9.50 + finalTicketsChild1*6.00); 
    System.out.printf("Total sales: $%.2",totalSalesThtr1 + "\n"); 

    System.out.println("Theater 2\n"); 
    System.out.println("Number of Adult Tickets: " + finalTicketsAdult2); 
    System.out.println("Number of Child Tickets: " + finalTicketsChild2); 
    totalSalesThtr2=(finalTicketsAdult2*12.50 + finalTicketsChild2*7.50); 
    System.out.printf("Total sales: $%.2",totalSalesThtr2 + "\n"); 

    overallSales=totalSalesThtr1 + totalSalesThtr2; 

    System.out.printf("Overall sales: $%.2",overallSales); 
    }}} 


    Enter theater number: 
    1 
    Enter number of adult tickets: 
    5 
    Enter number of child tickets: 
    5 
    Enter theater number: 
    2 
    Enter number of adult tickets: 
    5 
    Enter number of child tickets: 
    5 
    Enter theater number: 
    -999 
Theater 1 

Number of Adult Tickets: 5 
Number of Child Tickets: 5 
Exception in thread "main" java.util.UnknownFormatConversionException:  Conversion = '.' 
at java.util.Formatter.checkText(Formatter.java:2547) 
at java.util.Formatter.parse(Formatter.java:2533) 
at java.util.Formatter.format(Formatter.java:2469) 
at java.io.PrintStream.format(PrintStream.java:970) 
at java.io.PrintStream.printf(PrintStream.java:871) 

これを修正する方法はわかりませんが、私はこのことを正しくやっていると思います。これを修正する理由や方法はありますか?

答えて

0

これは

System.out.printf("Total sales: $%.2",totalSalesThtr1 + "\n"); 

System.out.printf("Total sales: $%.2f%n", totalSalesThtr1); 

System.out.printf("Total sales: $%.2f%n", totalSalesThtr2); 
// ... 
System.out.printf("Overall sales: $%.2f%n", overallSales); 

f converter値が浮動小数点と%nされていることを示す他のprintfコールと同じでなければならないことは改行を追加します。

+0

これを変更したので、今このエラーが表示されます。スレッド "main"の例外java.util.IllegalFormatConversionException:f!= java.lang.String – Icodin

+0

あなたは '+"取り出していませんでした。それはそれを浮動小数点型から 'String'に変換します。 –

+0

ありがとうございます、私はその部分を見落としました。私が持っていた問題を解決してくれてありがとう=) – Icodin

関連する問題