summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Dickinson <dickinsm@gmail.com>2009-10-08 20:02:25 (GMT)
committerMark Dickinson <dickinsm@gmail.com>2009-10-08 20:02:25 (GMT)
commitd5a713ec307766dc186913b238fbe3e92ad5fd73 (patch)
tree9b77d9823bc962a7cb536241fdf22cf4385e903e
parent539bff4234d6e3c3183884625434b10b02f6cb05 (diff)
downloadcpython-d5a713ec307766dc186913b238fbe3e92ad5fd73.zip
cpython-d5a713ec307766dc186913b238fbe3e92ad5fd73.tar.gz
cpython-d5a713ec307766dc186913b238fbe3e92ad5fd73.tar.bz2
Issue #7051: Clarify behaviour of 'g' and 'G'-style formatting.
-rw-r--r--Doc/library/string.rst32
1 files changed, 25 insertions, 7 deletions
diff --git a/Doc/library/string.rst b/Doc/library/string.rst
index f5a1a3e..d01ddf1 100644
--- a/Doc/library/string.rst
+++ b/Doc/library/string.rst
@@ -446,15 +446,33 @@ The available presentation types for floating point and decimal values are:
+---------+----------------------------------------------------------+
| ``'F'`` | Fixed point. Same as ``'f'``. |
+---------+----------------------------------------------------------+
- | ``'g'`` | General format. This prints the number as a fixed-point |
- | | number, unless the number is too large, in which case |
- | | it switches to ``'e'`` exponent notation. Infinity and |
- | | NaN values are formatted as ``inf``, ``-inf`` and |
- | | ``nan``, respectively. |
+ | ``'g'`` | General format. For a given precision ``p >= 1``, |
+ | | this rounds the number to ``p`` significant digits and |
+ | | then formats the result in either fixed-point format |
+ | | or in scientific notation, depending on its magnitude. |
+ | | |
+ | | The precise rules are as follows: suppose that the |
+ | | result formatted with presentation type ``'e'`` and |
+ | | precision ``p-1`` would have exponent ``exp``. Then |
+ | | if ``-4 <= exp < p``, the number is formatted |
+ | | with presentation type ``'f'`` and precision |
+ | | ``p-1-exp``. Otherwise, the number is formatted |
+ | | with presentation type ``'e'`` and precision ``p-1``. |
+ | | In both cases insignificant trailing zeros are removed |
+ | | from the significand, and the decimal point is also |
+ | | removed if there are no remaining digits following it. |
+ | | |
+ | | Postive and negative infinity, positive and negative |
+ | | zero, and nans, are formatted as ``inf``, ``-inf``, |
+ | | ``0``, ``-0`` and ``nan`` respectively, regardless of |
+ | | the precision. |
+ | | |
+ | | A precision of ``0`` is treated as equivalent to a |
+ | | precision of ``1``. |
+---------+----------------------------------------------------------+
| ``'G'`` | General format. Same as ``'g'`` except switches to |
- | | ``'E'`` if the number gets to large. The representations |
- | | of infinity and NaN are uppercased, too. |
+ | | ``'E'`` if the number gets too large. The |
+ | | representations of infinity and NaN are uppercased, too. |
+---------+----------------------------------------------------------+
| ``'n'`` | Number. This is the same as ``'g'``, except that it uses |
| | the current locale setting to insert the appropriate |