Issue #23096: Pickle representation of floats with protocol 0 now is the same
for both Python and C implementations.
diff --git a/Misc/NEWS b/Misc/NEWS
index 4625134..9051e00 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -13,6 +13,9 @@
 Library
 -------
 
+- Issue #23096: Pickle representation of floats with protocol 0 now is the same
+  for both Python and C implementations.
+
 - Issue #19105: pprint now more efficiently uses free space at the right.
 
 - Issue #14910: Add allow_abbrev parameter to argparse.ArgumentParser. Patch by
diff --git a/Modules/_pickle.c b/Modules/_pickle.c
index 7a234f1..51e2f83 100644
--- a/Modules/_pickle.c
+++ b/Modules/_pickle.c
@@ -1979,7 +1979,7 @@
         if (_Pickler_Write(self, &op, 1) < 0)
             goto done;
 
-        buf = PyOS_double_to_string(x, 'g', 17, 0, NULL);
+        buf = PyOS_double_to_string(x, 'r', 0, Py_DTSF_ADD_DOT_0, NULL);
         if (!buf) {
             PyErr_NoMemory();
             goto done;