2014-02-11 2 views
1

Строки Java System.out не выполняются должным образом, что заставляет их печатать половину каждой строки в одной строке. Я не уверен, что здесь не так. Согласно моим заметкам, они выглядят хорошо. Есть предположения?Строки Java System.out не выполняются должным образом

Код:

System.out.printf("The circumference of a circle with radius ", radius, " is: ", circumference, ".\n"); 
System.out.printf("The area of a circle with radius ", radius, " is: ", areacircle, ".\n"); 
System.out.printf("The area of a sphere with radius ", radius, " is: ", areasphere, ".\n"); 
System.out.printf("The volume of a sphere with radius ", radius, " is: ", volumesphere, ".\n"); 

Выход:

Введите радиус: 2.5 Длина окружности круга с радиусом площади круга с радиусом области сферы с радиусом Объем сферы с радиусом

+1

Возможно, вам захочется прочитать [Форматированные строки] (http://www.homeandlearn.co.uk/java/java_formatted_strings.html) и, возможно, [Форматирование числового вывода печати] (http://docs.oracle .com/javase/tutorial/java/data/numberformat.html) – MadProgrammer

ответ

6

Вы не используете printf справа. Это:

System.out.printf("The circumference of a circle with radius ", radius, " is: ", circumference, ".\n"); 

должно быть:

System.out.printf("The circumference of a circle with radius %.2f is: %.2f%n", 
    radius, circumference); 

Если %f является заполнителем для плавающей запятой (предположительно удвоится здесь) значения. Вся идея printf заключается в том, чтобы избежать уродливой конкатенации строк, которую вы выполняете в своем коде. Обратите внимание, что вы должны использовать %n для конца строки в printf и аналогичном коде, а не \n.

Для получения дополнительной информации вы захотите посмотреть на api для класса java.util.Formatter.

3

Чтобы правильно использовать printf, укажите формат в первом аргументе и укажите значения со всеми другими аргументами. Использовать заполнители для значений. Пример для первой строки:

System.out.printf("The circumference of a circle with radius %f is %f.\n", 
    radius, circumference); 

Также см. formatting summary.

+0

Радиус и окружность вряд ли оба являются целыми числами, что при pi является иррациональным и всем. –

+0

@DavidWallace Вы правы; Я изменил свой ответ. – rgettman

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