C: вывести значение с плавающей запятой - PullRequest
53 голосов
/ 01 декабря 2011

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

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

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

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

Ответы [ 6 ]

106 голосов
/ 01 декабря 2011

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

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

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

PS Спасибо @ caf за поправку.

15 голосов
/ 01 декабря 2011

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

6 голосов
/ 01 декабря 2011
printf("%.<number>f", myFloat) //where <number> - digit after comma

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

2 голосов
/ 01 февраля 2014
printf("%0k.yf" float_variable_name)

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

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

1 голос
/ 01 декабря 2011

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

0 голосов
/ 01 декабря 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...