Динамический спецификатор формата с плавающей точкой в ​​C - PullRequest
10 голосов
/ 09 марта 2012

Есть ли какой-нибудь способ иметь пользовательский спецификатор формата 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 ]

20 голосов
/ 09 марта 2012

Точность может быть указана аргументом со звездочкой *.Это называется предоставленной аргументом точностью.

float c = 15.0123;
int m = 2;
printf("%.*f", m,  c);
7 голосов
/ 09 марта 2012

printf("%.*f", n, c);, который распечатает c с n разрядами после десятичной дроби.

...