C语言中printf的%f默认精度是多少?

16

我很好奇:

如果你执行 printf("%f", number); 这个语句,它的精度是多少?也就是说,会显示几位小数?这与编译器有关吗?


1
这实际上是由C标准定义的。我已经添加了一个标签。 - anon
3个回答

33

在 ANSI C 标准的第 7.19.6.1 节中,关于 f 格式说明符,有如下规定:

如果省略精度,则会给出 6 个数字


9

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

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


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接