C: printf um valor flutuante
quero imprimir um valor flutuante que tenha 2 dígitos inteiros e 6 dígitos decimais a seguir à vírgula. Se eu usar {[[0]} estou a ter um valor truncado.
Eu não sei se isso sempre acontece em C, ou é apenas porque eu estou usando C para microcontroladores (CCS para ser exato), mas na referência ele diz que %f
Obter apenas isso: um flutuador truncado.
Se o meu flutuador for 44.556677
, vou imprimir "44.55"
, apenas os dois primeiros dígitos decimais.
6 answers
Podes fazê-lo assim:
printf("%.6f", myFloat);
6 representa o número de dígitos a seguir ao ponto.
P. S. Obrigado@caf por me corrigires.
printf("%9.6f", myFloat)
especifica um formato com 9 caracteres totais: 2 dígitos antes do ponto, o próprio ponto, e seis dígitos após o ponto.
printf("%.<number>f", myFloat) //where <number> - digit after comma
printf("%0k.yf" float_variable_name)
Aqui k
é o número total de caracteres que deseja imprimir. k = x + 1 + y
(+ 1
para o ponto) e float_variable_name
é a variável flutuante que deseja imprimir.
Suponha que deseja imprimir X dígitos antes do ponto decimal e y dígitos depois dele. Agora, se o número de dígitos antes do float_ variable_name for inferior a x, então ele irá automaticamente pré-enviar muitos zeros antes dele.
Utilizar %.6f
.
Isto vai imprimir seis casas decimais.
Tem de utilizar %2.6f
em vez de %f
no seu extracto de impressão