summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Objects/stringlib/formatter.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/Objects/stringlib/formatter.h b/Objects/stringlib/formatter.h
index d9d47b9..1f3c535 100644
--- a/Objects/stringlib/formatter.h
+++ b/Objects/stringlib/formatter.h
@@ -935,6 +935,12 @@ format_float_internal(PyObject *value,
if (precision < 0)
precision = 6;
+#if PY_VERSION_HEX < 0x03010000
+ /* 3.1 no longer converts large 'f' to 'g'. */
+ if ((type == 'f' || type == 'F') && fabs(val) >= 1e50)
+ type = 'g';
+#endif
+
/* Cast "type", because if we're in unicode we need to pass a
8-bit char. This is safe, because we've restricted what "type"
can be. */