Подтвердить что ты не робот

C: printf a float value

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

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

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

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

4b9b3361

Ответ 1

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

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

6 представляет количество цифр после точки.

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

Ответ 2

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

Ответ 4

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

Ответ 5

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

Ответ 6

printf("%0k.yf" float_variable_name)

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

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