2014-11-30 2 views
-2
public static void main(String[] args) { 
    Scanner input = new Scanner(System.in); 
    System.out.println("This program converts between feet and meters"); 
    System.out.printf("%5s%12s%6s%12s%12s\n","Feet","Meters","|","Meters","Feet"); 
    System.out.println("             "); 

    for(double f = 1.0, m = 20; f <= 10.0; f++, m += 5.0){ 
     System.out.printf("%5.1f%12.3f%6s%12,1f%12.3f\n", f, footToMeter(f), "|", m, meterToFoot(m)); 
    } 

} 
public static double footToMeter(double foot){ 
    return foot * 0.3048; 
} 
public static double meterToFoot(double meter){ 
    return meter/0.3048; 
} 

Результаты должны быть как:Преобразования между ногами и м

Feet Meters | Meters Feet 
1.0 0.305 | 20.0 65.574 
2.0 0.610 | 25.0 81.967 

Но вместо этого я получаю следующее исключение:

Exception in thread "main" java.util.UnknownFormatConversionException: Conversion = '1' 
at java.util.Formatter.checkText(Formatter.java:2503) 
at java.util.Formatter.parse(Formatter.java:2467) 
at java.util.Formatter.format(Formatter.java:2414) 
at java.io.PrintStream.format(PrintStream.java:920) 
at java.io.PrintStream.printf(PrintStream.java:821) 
at Ex6_9.main(Ex6_9.java:15) 
+4

Но результаты на самом деле похожи? – christopher

+0

когда я запускаю код, он дает мне ошибки, я не знаю, что я делаю неправильно? –

+3

Можете ли вы опубликовать ошибки? См. [Help/on-topic] о написании хорошего вопроса, чтобы мы могли лучше ответить (и быстрее). – FlyingPiMonster

ответ

0

У вас есть опечатка в этой строке

System.out.printf("%5.1f%12.3f%6s%12,1f%12.3f\n", f, footToMeter(f), "|", m, meterToFoot(m)); 

В частности, "%5.1f%12.3f%6s%12,1f%12.3f\n" необходимо b e изменено на "%5.1f%12.3f%6s%12.1f%12.3f\n". Обратите внимание, что запятая была изменена на период.

+0

большое спасибо Дэвиду. здесь запятая собирается поставить меня в беду. большое спасибо –

Смежные вопросы