Поделиться через


Спецификация точности

В спецификации формата третье необязательное поле является спецификацией точности. Он состоит из точки (.), за которой следует неотрицательное целое десятичное число, которое, в зависимости от типа преобразования, определяет количество символов строки, количество десятичных разрядов, или количество значащих цифр для вывода.

В отличие от спецификации ширины, спецификация точности может вызвать или усечение выходного значения, или округление значения с плавающей запятой. Если precision определен как 0, а значение, которое требуется преобразовать, равно 0, результат не является символом, как показано в следующем примере:

printf( "%.0d", 0 ); /* No characters output */

Если спецификация точности — звездочка (*) int, аргумент из списка аргументов предоставляет значение. В списке аргументов аргумент precision должен предшествовать форматируемому значению, как показано в следующем примере:

printf( "%.*f", 3, 3.14159265 ); /* 3.142 output */

Тип определяет либо интерпретацию precision, либо точность по умолчанию при опущенном precision, как показано в следующей таблице.

Как значение точности влияет на тип

Тип

Значение

По умолчанию

a, A

Точность определяет количество цифр после запятой.

Точность по умолчанию — 6 Если точность 0, то десятичная запятая не печатается, если не используется флаг #.

c, C

Точность не имеет эффекта.

Символ напечатан.

d, i, u, o, x, X

Точность определяет минимальное число цифр, которые нужно напечатать. Если число цифр в аргументе меньше, чем precision, выходное значение дополняется слева нулями. Значение не усекается, когда число знаков превышает precision.

Точность по умолчанию — 1

e, E

Число знаков дробной части для печати задается спецификатором точности. Последняя напечатанная цифра округлена.

Точность по умолчанию — 6 Если precision — 0 или точка (.) присутствует без числа после нее, то десятичная запятая не печатается.

f

Значение точности задает число цифр после десятичной запятой. Если десятичная запятая присутствует, по крайней мере одна цифра отображается после нее. Значение округляется до соответствующему числа цифр.

Точность по умолчанию — 6 Если precision — 0 или точка (.) присутствует без числа после нее, то десятичная запятая не печатается.

g, G

Точность определяет максимальное количество значащих цифр для печати.

Печатаются шесть значащих цифр, и конечные нули усекаются.

s, S

Точность определяет максимальное число символов для печати. Символы свыше precision не будут напечатаны.

Символы печатаются до тех пор, пока не обнаружен нулевой символ.

См. также

Ссылки

printf, _printf_l, wprintf, _wprintf_l

Синтаксис описания формата: функции printf и wprintf

Директивы флагов

Спецификация ширины printf

Спецификация размера

Символы поля типа printf