带有 %f 的 C printf,其小数位基于 %d?
C printf with %f whose decimal places is based on %d?
我可以用 printf("Value: %0.4f\n", value)
打印到小数点后四位;但是,有没有办法让小数位数成为用 %d
插入的值?例如,类似于:
double x = 3.434244;
int decimalPlaces = 4;
printf("Value: %0.%df\n", x, decimalPlaces);
您可以用 *
代替字段宽度或精度,在这种情况下,需要 int
来填充值。
printf("Value: %0.*f\n", decimalPlaces, x);
@dbush 的回答是要走的路。但是为了完整起见,您还可以格式化格式化字符串:
sprintf(fmt, "Value: %%.%df\n", decimalPlaces);
printf(fmt, x);
注意 printf()
中的双 %%
转义 %
。
我可以用 printf("Value: %0.4f\n", value)
打印到小数点后四位;但是,有没有办法让小数位数成为用 %d
插入的值?例如,类似于:
double x = 3.434244;
int decimalPlaces = 4;
printf("Value: %0.%df\n", x, decimalPlaces);
您可以用 *
代替字段宽度或精度,在这种情况下,需要 int
来填充值。
printf("Value: %0.*f\n", decimalPlaces, x);
@dbush 的回答是要走的路。但是为了完整起见,您还可以格式化格式化字符串:
sprintf(fmt, "Value: %%.%df\n", decimalPlaces);
printf(fmt, x);
注意 printf()
中的双 %%
转义 %
。