我很好奇:
如果你执行 printf("%f", number);
这个语句,它的精度是多少?也就是说,会显示几位小数?这与编译器有关吗?
在 ANSI C 标准的第 7.19.6.1 节中,关于 f 格式说明符,有如下规定:
如果省略精度,则会给出 6 个数字
这本书C: A Reference Manual指出,如果没有指定精度,则默认精度为6(即小数点后6位)。
需要注意的是,如果数字为inf(即1.0/0.0)或NaN,则C99规定输出应为inf、-inf、infinity、-infinity或nan等等...
%f
的默认精度为6位数字(参见ISO C99规范,7.19.6.1/7)。