考虑:
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
更复杂,但可以阅读这里。