Especificação da precisão
Em uma especificação de formato, o terceiro campo opcional é a especificação de precisão. Consiste em um ponto (.) seguido por um inteiro não negativo que decimal, dependendo do tipo de conversão, especifica o número de caracteres da cadeia de caracteres, o número de casas decimais, ou o número de dígitos significativos para saída.
Ao contrário da especificação de largura, a especificação de precisão pode causar truncamento de valor de saída ou pelo arredondamento de um valor de ponto flutuante. Se precision for especificado como 0 e o valor a ser convertido for 0, o resultado é nenhuma saída de caracteres, como mostra este exemplo:
printf( "%.0d", 0 ); /* No characters output */
Se a especificação de precisão é um asterisco (*), um argumento de int da lista de argumento fornece o valor. Na lista de argumentos, o argumento de precision deve preceder o valor que está sendo formatado, conforme mostrado neste exemplo:
printf( "%.*f", 3, 3.14159265 ); /* 3.142 output */
O tipo determinará a interpretação de precision ou precisão padrão quando precision for omitido, conforme mostrado na seguinte tabela.
Como tipo de influência dos valores de precisão
Tipo |
Significado |
Padrão |
---|---|---|
a, A |
A precisão especifica o número de dígitos após o ponto. |
A precisão padrão é 6. Se a precisão é 0, nenhum ponto decimal é impresso a menos que o sinalizador de # é usado. |
c, C |
A precisão não tem nenhum efeito. |
O caractere for impresso. |
d, i, u, o, x, X |
A precisão especifica o número mínimo de dígitos a ser impressos. Se o número de dígitos do argumento for menor que precision, o valor de saída é preenchida com zeros à esquerda. O valor não é truncado quando o número de dígitos exceder precision. |
A precisão padrão é 1. |
e, E |
A precisão especifica o número de dígitos a ser impressos após o ponto decimal. O último dígito impresso é arredondado. |
A precisão padrão é 6. Se precision for 0 ou o ponto (.) aparece sem um número que segue o, nenhum ponto decimal é impresso. |
f |
O valor de precisão especifica o número de dígitos após o ponto decimal. Se um ponto decimal for exibida, pelo menos um dígito aparecer antes deles. O valor é arredondado para o número apropriado de dígitos. |
A precisão padrão é 6. Se precision será 0, ou se o ponto (.) aparece sem um número que segue o, nenhum ponto decimal é impresso. |
g, G |
A precisão especifica o número máximo de dígitos significativos impressos. |
Seis dígitos significantes são impressos, e todos os zeros à direita são truncados. |
s, S |
A precisão especifica o número máximo de caracteres a ser impressos. Os caracteres além de precision não são impressos. |
Os caracteres são impressos até que um caractere nulo seja encontrado. |
Consulte também
Referência
printf, _printf_l, wprintf, _wprintf_l
Sintaxe de especificação de formato: funções printf e and wprintf