考虑:

double a = 0.0000005l;
char aa[50];
sprintf(aa, "%lf", a);
printf("%s", aa);

Output: s0.000000

在上面的代码段中,变量aa只能包含六个小数的精度。我想获得" S0.000055"之类的输出。我该如何实现?

答案

从您的问题看,您似乎正在使用C99%lf双重。

为了实现所需的输出替换:

sprintf(aa, "%lf", a);

sprintf(aa, "%0.7f", a);

一般语法"%A.B"小数点后使用B位数的方法。含义A更复杂,但可以阅读这里

来自: stackoverflow.com