我想了解爲什麼零填充對於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