Reputation: 963
Is there any way to have a user inputed float format specifier? For example, if I print this.
float c = 15.0123
printf("%.2f", c);
// outputs: 15.01
How can I assign the number of decimal places to a variable? Like:
int n = 3;
float c = 15.0123
printf("%.(%i)f", n, c);
// outputs: 15.012
Upvotes: 16
Views: 5740
Reputation: 5706
printf("%.*f", n, c);
that will print out c with n places after the decimal.
Upvotes: 7
Reputation: 145899
The precision can be specified by an argument with the asterisk *
. This is called an argument-supplied precision.
float c = 15.0123;
int m = 2;
printf("%.*f", m, c);
Upvotes: 28