Приложение 2. Форматные строки преобразования числа в строку

Форматная строка определяет форму представления значения числа. В общем случае она имеет вид %Длина.ТочностьТип

Длина - количество знаков, отводимое для значения. Может получиться так, что для отображения полученного значения требуется меньше символов, чем указано в блоке «Длина». Например, указана длина 10, а получено значение 123. В этом случае слева к значению будет приписано семь пробелов. Если нужно, чтобы слева приписывались не пробелы, а нули, следует в начало блока «Длина» поместить 0, например, написать не 10, а 010. Блок «Длина» может отсутствовать, тогда для значения будет отведено ровно столько символов, сколько требуется для его отображения.

Точность
 - точность представления дробной части, т. е. количество знаков после запятой. Если для отображения дробной части значения требуется больше знаков, то значение округляется. Обычно точность указывают в том случае, если используется тип преобразования f. Для других типов указывать точность не рекомендуется. Если точность не указана, то для типа преобразования f она по умолчанию принимается равной 6. Если указана точность 0, то число выводится без дробной части.

Тип
 - определяет способ преобразования числа в строку.

Существуют следующие типы:

d
- десятичное целое число со знаком;

u
- десятичное целое число без знака;

o
- восьмеричное целое число без знака;

x
- шестнадцатеричное целое число без знака; для вывода цифр, превышающих 9, используются буквы a, b, c, d, e, f;

X
- шестнадцатеричное целое число без знака; для вывода цифр, превышающих 9, используются буквы A, B, C, D, E, F;

f
- действительное число.






User comments:

G_Z 02.03.2016 00:07

Стоит учитывать, что знак числа учитывается в длине значения.
Это приводит к тому, что положительные и отрицательные числа будут выводиться в виде строки разной длины:
$a(-2)
$b(2)
^a.format[%02d]/^b.format[%02d]
выведет «-2/02», а не «-02/02», как ожидалось.

Если есть необходимость всегда выводить знак числа, необходимо указать флаг «+» после %:
$a(-2)
$b(2)
$c(0)
^a.format[%+03d]/^b.format[%+03d]/^c.format[%+03d]
выведет «-02/+02/+00».


G_Z 01.02.2016 21:56

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

^number.format[%03.d] → ^number.format[%03d]

http://www.parser.ru/forum/?id=80924


Никита Козин 13.09.2005 11:49

Форматную строку следует читать так:

%длина
.точность
тип


In order to add comments you must register.
Copyright © 1997–2024 Art. Lebedev Studio | http://www.artlebedev.ru Дата обновления: 11.09.2024