当我使用时printf("%.6g\n",36.666666662);
,我期望输出36.666667
。但实际输出是36.6667
我给出的格式有什么问题?我的目标是有 6 位小数
这是正确的行为。根据cplusplus.com:
对于 a、A、e、E、f 和 F 说明符:这是要在小数点后打印的位数。
对于 g 和 G 说明符:这是要打印的最大有效位数。
如果您使用f
而不是g
then 它将按您的预期工作。
示例代码
#include <stdio.h>
int main(void) {
printf("%.6g\n", 36.666666662);
printf("%.6f\n", 36.666666662);
return 0;
}
结果
36.6667
36.666667
在线查看它:ideone。