C: printf a float value

Я хочу напечатать значение float, которое имеет 2 целых числа и 6 десятичных цифр после запятой. Если я просто использую printf("%f", myFloat) я получаю усеченное значение.

Я не знаю, всегда ли это происходит в C, или просто потому, что я использую C для микроcontrollerов (точнее, CCS), но при ссылке он сообщает, что %f получает только это: усеченный float.

Если мой float равен 44.556677 , я 44.556677 "44.55" , только первые две десятичные цифры.

Итак, вопрос в том, как … я могу напечатать 6 цифр (и только шесть из них, на всякий случай у меня есть нули после этого или что-то еще)?

Вы можете сделать это следующим образом:

 printf("%.6f", myFloat); 

6 – количество цифр после точки.

PS Спасибо @caf за исправление меня.

printf("%9.6f", myFloat) определяет формат с 9 полными символами: 2 цифры перед точкой, сама точка и шесть цифр после точки.

 printf("%.f", myFloat) //where  - digit after comma 

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

 printf("%0k.yf" float_variable_name) 

Здесь k – общее количество символов, которые вы хотите распечатать. k = x + 1 + y ( + 1 для точки), а float_variable_name – это переменная float, которую вы хотите распечатать.

Предположим, вы хотите напечатать x цифр до десятичной точки и y цифр после нее. Теперь, если количество цифр до float_variable_name меньше, чем x, то оно автоматически добавит к нему столько нhive.

Используйте %.6f . Это напечатает 6 десятичных знаков.

Вам нужно использовать %2.6f вместо %f в вашем заявлении printf