Динамический спецификатор формата с плавающей точкой в ​​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
10 голосов | спросил atb 9 MaramFri, 09 Mar 2012 04:12:24 +04002012-03-09T04:12:24+04:0004 2012, 04:12:24

2 ответа


0

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

float c = 15.0123;
int m = 2;
printf("%.*f", m,  c);
ответил ouah 9 MaramFri, 09 Mar 2012 04:17:09 +04002012-03-09T04:17:09+04:0004 2012, 04:17:09
0

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

ответил twain249 9 MaramFri, 09 Mar 2012 04:17:29 +04002012-03-09T04:17:29+04:0004 2012, 04:17:29

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132