Issue #5920: Changed format.__float__ and complex.__float__ to use a precision of 12 when using the empty presentation type. This more closely matches str()'s behavior and reduces surprises when adding alignment flags to an empty format string. Patch by Mark Dickinson.

This commit is contained in:
Eric Smith 2009-05-05 18:26:08 +00:00
parent 929ab93489
commit a985a3aee4
9 changed files with 110 additions and 27 deletions

View file

@ -660,16 +660,15 @@ _PyOS_double_to_string(char *buf, size_t buf_len, double val,
/* Supplied precision is unused, must be 0. */
if (precision != 0)
return;
/* The repr() precision (17 significant decimal digits) is the
minimal number that is guaranteed to have enough precision
so that if the number is read back in the exact same binary
value is recreated. This is true for IEEE floating point
by design, and also happens to work for all other modern
hardware. */
precision = 17;
format_code = 'g';
break;
case 's': /* str format */
/* Supplied precision is unused, must be 0. */
if (precision != 0)
return;
precision = 12;
format_code = 'g';
break;
default:
assert(0);
return;