问题
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
回答1:
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);
回答2:
printf("%.*f", n, c);
that will print out c with n places after the decimal.
来源:https://stackoverflow.com/questions/9627075/dynamic-float-format-specifier-in-c