我想了解为什么零填充对于printf中的%g和%f格式有不同的作用。下面是一个示例程序:printf零填充区别%g和%f
#include <stdio.h>
int main()
{
double d = 0.10000000000001;
printf("%04.2f\n", d);
printf("%04.2g\n", d);
return 0;
}
它输出
0.10
00.1
这两个VC++在Windows重复性和GCC在Linux上。
它为什么这样工作?这是一个正确的行为?
更新:我找到了答案,但我想我会离开的问题开放...
“我找到了答案,但我认为我会留下这个问题......”那么如果您为可能遇到同一问题的其他人分享了答案,那将会非常好。 – us2012 2013-02-28 14:02:34
对,但我会稍后再做。我想给那些好奇的人留下一个机会来回答并获得接受。以防万一。 – queen3 2013-02-28 14:04:22