Читаем Язык программирования Perl полностью

Таблица 7.2. Преобразования в формате sprintf
ПреобразованиеСинонимРезультат преобразованияМнемоника символа
%%Знак процента%
%cСимвол с указанным номером в кодовой таблицеCharacter
%sСтрокаString
%d%iЦелое со знаком в десятичном видеDecimal, Integer
%uЦелое без знака в десятичном видеUnsigned
%bЦелое без знака в двоичном видеBinary
%oЦелое без знака в восьмеричном видеOctal
%x%XЦелое без знака в шестнадцатеричном видеheXadecimal
%e%EЦелое с плавающей точкой в научной нотацииExponential
%f%FЧисло с плавающей точкой в виде десятичной дробиFloat
%g%GЧисло с плавающей точкой в формате %e или %f

Между знаком процента и символом в указании преобразования можно использовать дополнительные параметры преобразования, основные из которых приведены в таблице 7.3.

Таблица 7.3. Параметры преобразования в формате sprintf
ПараметрВыполняемое форматированиеПример параметров sprintf()Результат форматирования
числоМинимальная ширина поля вывода для результата преобразования; если она не задана или меньше ширины значения, то устанавливается равной ширине выводимого значения'<%5s>', 25<   25>
.числоКоличество цифр после десятичной точки в дробном числе'<%.5f>', 0.25<0.25000>
Максимальная ширина поля вывода, до которой усекается длинная строка'<%.5s>', '5' x 10<55555>
пробелВывод пробела перед положительным числом'<% d>', 25'< 25>'
+Вывод плюса перед положительным числом'<%+d>', 25'<+25>'
0Вывод нулей, а не пробелов при выравнивании по правому краю поля'<%05s>', 25'<00025>'
-Выравнивание значения по левому краю поля<%-5s>, 25'<25 >'
#Вывод перед восьмеричным числом 0, перед шестнадцатеричным числом 0x, перед двоичным числом 0b'<%#x>',25'<0x19>'

При выполнении sprintf() к очередному значению из списка аргументов применяется преобразование, результат которого вставляется в форматирующую строку на место указания преобразования. Например, если шаблон форматирования и аргументы функции sprintf() заданы так:


$format = "'%12s' агента <%03d> = '%+-10.2f'"; @list = ('Температура', 7, 36.6); $formatted_string = sprintf($format, @list);


то после выполнения приведенного предложения в переменной $formatted_string будет содержаться такая отформатированная строка:


' Температура' агента <007> = '+36.60 '


Преобразования в формате этого примера обозначают следующее:

[x]. %12s - преобразовать аргумент в строку (string) и поместить в поле шириной в 12 символов с выравниванием вправо (т. к. ширина поля положительная);

[x]. %03d - преобразовать аргумент в десятичное целое (decimal) и поместить в поле шириной в 3 цифры с ведущими нулями (т. к. ширина поля задана с ведущим нулем) и выравниванием вправо (поскольку ширина положительная);

[x]. %+-10.2f - преобразовать аргумент в дробное число (float) с явным знаком (т.к. указан +) и поместить в поле шириной в 10 цифр, из которых 2 отводятся на дробную часть, с выравниванием влево (поскольку ширина поля отрицательная).

Функция sprintf() часто применяется для округления чисел - например, до трех знаков в дробной части:


$rounded = sprintf("%.3f", 7/3); # в $rounded будет 2.333


Полное описание форматов с самыми разными примерами их употребления можно прочитать в официальной документации:


perldoc -f sprintf


Перейти на страницу:

Похожие книги

Информатика: аппаратные средства персонального компьютера
Информатика: аппаратные средства персонального компьютера

Рассмотрены основы информатики и описаны современные аппаратные средства персонального компьютера. Сформулированы подходы к определению основных понятий в области информатики и раскрыто их содержание. Дана классификация современных аппаратных средств персонального компьютера и приведены их основные характеристики. Все основные положения иллюстрированы примерами, в которых при решении конкретных задач используются соответствующие программные средства.Рекомендуется для подготовки по дисциплине «Информатика». Для студентов, аспирантов, преподавателей вузов и всех интересующихся вопросами современных информационных технологий.

Владимир Николаевич Яшин

Зарубежная компьютерная, околокомпьютерная литература / Прочая компьютерная литература / Книги по IT