Динамический спецификатор формата с плавающей точкой в ​​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 местами после десятичной дроби.

Другие вопросы по тегам