Der Code
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);
gibt Ihnen die Ausgabe
x=3.141593
z=3.141593
x=3.141592741012573242
z=3.141592653589793116
Dabei steht in der dritten Ausgabezeile 741012573242
Müll und in der vierten Zeile 116
Müll. Haben Doppel immer 16 signifikante Zahlen, während Floats immer 7 signifikante Zahlen haben? Warum haben Doppel nicht 14 signifikante Zahlen?