我很好奇:
如果你做一个printf("%f", number);
陈述的精度是多少?即会显示多少个小数位?这个编译器依赖吗?
ANSI C 标准在第 7.19.6.1 节中对 f 格式说明符进行了说明:
如果缺少精度,则给出 6 位数字
默认精度为%f
6 位(参见 ISO C99 规范,7.19.6.1/7)。
《C: A Reference Manual 》一书指出,如果未指定精度,则默认精度为 6(即小数点后 6 位)。
需要注意的是,如果数字是 inf(即 1.0/0.0)或 NaN,则 C99 指定输出应为 inf、-inf、infinity、-infinity 或 nan 等。