2009-07-30 47 views
9

我很好奇:什么是c printf%f默认精度?

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

+1

这是实际上由C标准定义。我已经添加了一个标签。 – 2009-07-30 16:39:13

回答

18

ANSI C标准,第7.19.6.1说,这对F格式说明符:

如果缺少精度,6位给予

5

%f默认精度是6位数字(参见ISO C99规范,7.19.6.1/7)。

5

该书C: A Reference Manual指出,如果未指定精度,则默认精度为6(即小数点后6位)。

一个警告是,如果数字是INF(即1.0/0.0)或NaN然后C99指定该输出应当INF,-INF,无穷大,-infinity或NaN等....