代码
float x = 3.141592653589793238;
double z = 3.141592653589793238;
printf("x=%f\n", x);
printf("z=%f\n", z);
printf("x=%20.18f\n", x);
printf("z=%20.18f\n", z);
会给你输出
x=3.141593
z=3.141593
x=3.141592741012573242
z=3.141592653589793116
输出的第三行741012573242
是垃圾,第四行116
是垃圾。双打是否总是有16个有效数字,浮子总是有7个有效数字?为什么双打没有14位有效数字?