#include long double y = 0; main() { union { long double ld; long long ll[2]; } x = { 15.0l }; while (x.ld > 0) { printf ("0x%016llx.%016llx = %L35.30g\n", x.ll[0], x.ll[1], x.ld); x.ld += y; printf ("0x%016llx.%016llx = %L35.30g\n", x.ll[0], x.ll[1], x.ld); x.ld /= 10.0l; } }