【发布时间】:2009-07-30 16:33:43
【问题描述】:
我很好奇:
如果您执行printf("%f", number);,该语句的精度是多少? IE。会显示多少个小数位?这个编译器依赖吗?
【问题讨论】:
-
这个其实是C标准定义的。我添加了一个标签。
我很好奇:
如果您执行printf("%f", number);,该语句的精度是多少? IE。会显示多少个小数位?这个编译器依赖吗?
【问题讨论】:
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 等......
【讨论】: