2016-04-07 11 views
1

Bu biçimlendirmeyle ne girdiğim önemli değil, bu hata iletisidir. Sadece iki ondalık basamak almam gerekiyor, bu yüzden bir dolar tutarını temsil edecek. Herhangi bir yardım?"main" iş parçacığında özel durum 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) 

Bunu nasıl yapacağımı düşünmek için bunu nasıl düzelteceğimi bilmiyorum. Bunu düzeltmenin bir sebebi var mı?

cevap

0

Bu

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

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

ve

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

f converter değeri kayan nokta ve %n olduğunu gösterir, diğer printf aramalar ile aynı olması gerekir, bir yeni satır ekler .

+0

Bunu değiştirdim ve şimdi bana bu hatayı verdi. "Ana" java.util.IllegalFormatConversionException özel durumundaki istisna: f! = Java.lang.String – Icodin

+0

Bunu yapmak için "+" \ n "' yi kullanmadınız. Bu, onu bir kayan nokta türünden 'String' olarak dönüştürür. –

+0

Doğru söylüyorsun, o kısmı göz ardı ettim. Sahip olduğum sorunları çözdüğünüz için teşekkürler =) – Icodin