The 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); print
float : 23 bits of significand, 8 bits of exponent, and 1 sign bit.
double : 52 bits of significand, 11 bits of exponent, and 1 sign bit.