Make sure that marshal and pickle continue to output 17

digits of precision for floats.
This commit is contained in:
Mark Dickinson 2009-04-17 08:41:23 +00:00
parent 8648e501d8
commit 3e09f43e06
2 changed files with 4 additions and 4 deletions

View File

@ -1025,7 +1025,7 @@ save_float(PicklerObject *self, PyObject *obj)
if (pickler_write(self, &op, 1) < 0)
goto done;
buf = PyOS_double_to_string(x, 'r', 0, 0, NULL);
buf = PyOS_double_to_string(x, 'g', 17, 0, NULL);
if (!buf) {
PyErr_NoMemory();
goto done;

View File

@ -237,7 +237,7 @@ w_object(PyObject *v, WFILE *p)
}
else {
char *buf = PyOS_double_to_string(PyFloat_AS_DOUBLE(v),
'r', 0, 0, NULL);
'g', 17, 0, NULL);
if (!buf)
return;
n = strlen(buf);
@ -269,7 +269,7 @@ w_object(PyObject *v, WFILE *p)
char *buf;
w_byte(TYPE_COMPLEX, p);
buf = PyOS_double_to_string(PyComplex_RealAsDouble(v),
'r', 0, 0, NULL);
'g', 17, 0, NULL);
if (!buf)
return;
n = strlen(buf);
@ -277,7 +277,7 @@ w_object(PyObject *v, WFILE *p)
w_string(buf, (int)n, p);
PyMem_Free(buf);
buf = PyOS_double_to_string(PyComplex_ImagAsDouble(v),
'r', 0, 0, NULL);
'g', 17, 0, NULL);
if (!buf)
return;
n = strlen(buf);