diff -c -r --exclude=CVS cube.old/cube.c cube/cube.c *** cube.old/cube.c Thu Sep 12 00:26:00 2002 --- cube/cube.c Sun Nov 17 17:18:30 2002 *************** *** 121,130 **** --- 121,137 ---- bool equal = true; int dim = cube->dim; int i; + int ndig; initStringInfo(&buf); /* + * Get the number of digits to display. + */ + ndig = DBL_DIG + extra_float_digits; + if (ndig < 1) ndig = 1; + + /* * while printing the first (LL) corner, check if it is equal to the * second one */ *************** *** 133,139 **** { if (i > 0) appendStringInfo(&buf, ", "); ! appendStringInfo(&buf, "%.16g", cube->x[i]); if (cube->x[i] != cube->x[i + dim]) equal = false; } --- 140,146 ---- { if (i > 0) appendStringInfo(&buf, ", "); ! appendStringInfo(&buf, "%.*g", ndig, cube->x[i]); if (cube->x[i] != cube->x[i + dim]) equal = false; } *************** *** 146,152 **** { if (i > 0) appendStringInfo(&buf, ", "); ! appendStringInfo(&buf, "%.16g", cube->x[i + dim]); } appendStringInfoChar(&buf, ')'); } --- 153,159 ---- { if (i > 0) appendStringInfo(&buf, ", "); ! appendStringInfo(&buf, "%.*g", ndig, cube->x[i + dim]); } appendStringInfoChar(&buf, ')'); } diff -c -r --exclude=CVS cube.old/expected/cube.out cube/expected/cube.out *** cube.old/expected/cube.out Fri Nov 1 22:46:04 2002 --- cube/expected/cube.out Sun Nov 17 07:03:41 2002 *************** *** 145,183 **** (1 row) SELECT '1234567890123456'::cube AS cube; ! cube ! -------------------- ! (1234567890123456) (1 row) SELECT '+1234567890123456'::cube AS cube; ! cube ! -------------------- ! (1234567890123456) (1 row) SELECT '-1234567890123456'::cube AS cube; ! cube ! --------------------- ! (-1234567890123456) (1 row) SELECT '.1234567890123456'::cube AS cube; ! cube ! ---------------------- ! (0.1234567890123456) (1 row) SELECT '+.1234567890123456'::cube AS cube; ! cube ! ---------------------- ! (0.1234567890123456) (1 row) SELECT '-.1234567890123456'::cube AS cube; ! cube ! ----------------------- ! (-0.1234567890123456) (1 row) -- simple lists (points) --- 145,183 ---- (1 row) SELECT '1234567890123456'::cube AS cube; ! cube ! ------------------------ ! (1.23456789012346e+15) (1 row) SELECT '+1234567890123456'::cube AS cube; ! cube ! ------------------------ ! (1.23456789012346e+15) (1 row) SELECT '-1234567890123456'::cube AS cube; ! cube ! ------------------------- ! (-1.23456789012346e+15) (1 row) SELECT '.1234567890123456'::cube AS cube; ! cube ! --------------------- ! (0.123456789012346) (1 row) SELECT '+.1234567890123456'::cube AS cube; ! cube ! --------------------- ! (0.123456789012346) (1 row) SELECT '-.1234567890123456'::cube AS cube; ! cube ! ---------------------- ! (-0.123456789012346) (1 row) -- simple lists (points)