12

我很好奇:

如果你做一个printf("%f", number);陈述的精度是多少?即会显示多少个小数位?这个编译器依赖吗?

4

3 回答 3

27

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

如果缺少精度,则给出 6 位数字

于 2009-07-30T16:47:22.537 回答
6

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

于 2009-07-30T16:50:04.963 回答
6

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

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

于 2009-07-30T16:52:55.473 回答