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.

Então a questão é:.. Como posso imprime os meus 6 dígitos (e apenas os seis, no caso de eu ter zeros depois disso ou algo assim)?

Author: mskfisher, 2011-12-01

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.

 83
Author: Beginner, 2017-04-11 09:03:01

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.

 12
Author: dasblinkenlight, 2011-12-01 17:31:07
printf("%.<number>f", myFloat) //where <number> - digit after comma

Http://www.cplusplus.com/reference/clibrary/cstdio/printf/

 5
Author: Igor Shubin, 2017-02-28 08:59:22
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.

 1
Author: rohit, 2014-11-04 04:22:54

Utilizar %.6f. Isto vai imprimir seis casas decimais.

 1
Author: Charlie Brown, 2016-09-18 04:45:56

Tem de utilizar %2.6f em vez de %f no seu extracto de impressão

 0
Author: Shankar Raju, 2011-12-01 17:28:30