Спецификация точности
В спецификации формата третье необязательное поле является спецификацией точности. Он состоит из точки (.), за которой следует неотрицательное целое десятичное число, которое, в зависимости от типа преобразования, определяет количество символов строки, количество десятичных разрядов, или количество значащих цифр для вывода.
В отличие от спецификации ширины, спецификация точности может вызвать или усечение выходного значения, или округление значения с плавающей запятой. Если 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