Ответ 1
Вы можете сделать это следующим образом:
printf("%.6f", myFloat);
6 представляет количество цифр после точки.
P.S. Спасибо @caf за исправление меня.
Я хочу напечатать значение float, которое имеет 2 целых числа и 6 десятичных цифр после запятой. Если я просто использую printf("%f", myFloat)
, я получаю усеченное значение.
Я не знаю, всегда ли это происходит в C, или просто потому, что я использую C для микроконтроллеров (точнее CCS), но в ссылке он сообщает, что %f
получает только это: усеченный float.
Если мой float 44.556677
, я печатаю "44.55"
, только первые две десятичные цифры.
Итак, вопрос в том, как... я могу напечатать 6 цифр (и только шесть из них, на всякий случай у меня есть нули после этого или что-то еще)?
Вы можете сделать это следующим образом:
printf("%.6f", myFloat);
6 представляет количество цифр после точки.
P.S. Спасибо @caf за исправление меня.
printf("%9.6f", myFloat)
указывает формат с 9 полными символами: 2 цифры перед точкой, сама точка и шесть цифр после точки.
printf("%.<number>f", myFloat) //where <number> - digit after comma
Вам нужно использовать %2.6f
вместо %f
в вашем заявлении printf
Используйте %.6f
.
Это будет печатать 6 десятичных знаков.
printf("%0k.yf" float_variable_name)
Здесь k
- общее количество символов, которые вы хотите распечатать. k = x + 1 + y
(+ 1
для точки) и float_variable_name
- это переменная float, которую вы хотите распечатать.
Предположим, вы хотите напечатать x цифр до десятичной точки и y цифр после нее. Теперь, если количество цифр до float_variable_name меньше, чем x, то оно автоматически добавит к нему столько нулей.