什么是c printf%f默认精度?

spb*_*ots 10 c c++ precision printf

我很好奇:

如果你做了printf("%f", number);什么是声明的精确度?即会出现多少小数位?这个编译器是否依赖?

Lau*_*ves 23

ANSI C标准在7.19.6.1节中说明了f格式说明符:

如果精度丢失,则给出6位数字


Pav*_*aev 6

默认精度为%f6位(参见ISO C99规范,7.19.6.1/7).


Kar*_*and 6

书中的C:A参考手册指出,如果没有指定精度,则默认精度为6(即小数点后6位).

需要注意的是,如果数字是inf(即1.0/0.0)或NaN,则C99指定输出应为inf,-inf,infinity,-infinity或nan等....