Динамический спецификатор формата с плавающей точкой в C
Есть ли какой-нибудь способ иметь пользовательский спецификатор формата float? Например, если я распечатаю это.
float c = 15.0123
printf("%.2f", c);
// outputs: 15.01
Как я могу назначить количество знаков после запятой для переменной? Подобно:
int n = 3;
float c = 15.0123
printf("%.(%i)f", n, c);
// outputs: 15.012
2 ответа
Решение
Точность может быть указана аргументом со звездочкой *
, Это называется предоставленной аргументом точностью.
float c = 15.0123;
int m = 2;
printf("%.*f", m, c);
printf("%.*f", n, c);
это распечатает c с n местами после десятичной дроби.