众所周知,当您使用printf
输出float
的值时,精度有限。
然而,还有一招,以增加输出的精度,如下例所示:使用printf漂浮物的精度
#include <stdio.h>
int main()
{
float f = 1318926965; /* 10 random digits */
printf("%10.f\n", f); /* prints only 8 correct digits */
printf("%10d\n", *(int*)&f); /* prints all digits correctly */
return 0;
}
,我的问题是,为什么没有人更频繁地使用这一招?
因为潜在的未定义行为是不好的。 (编辑:从技术上讲,这可能不是未定义的行为,因为我不确定标准对此有何评论。尽管如此,Endianess可能会咬你。) – Corbin 2012-04-01 08:53:56
对于一个好的4月的第一个笑话+1。 – Henrik 2012-04-01 09:03:02
它显然让我x.x – Corbin 2012-04-01 09:16:05