mirror of https://github.com/python/cpython
Make sure that marshal and pickle continue to output 17
digits of precision for floats.
This commit is contained in:
parent
8648e501d8
commit
3e09f43e06
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue