diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2022-12-24 12:15:46 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-24 12:15:46 -0800 |
commit | 0dea92409e291cd61135d509204f60c46f6dfc0b (patch) | |
tree | c28768534ff3b37d40b3155ac165e58b14ed05cd | |
parent | 3ea6f7fee883faf5f4cf8abfff62deb986b89d53 (diff) | |
download | cpython-git-0dea92409e291cd61135d509204f60c46f6dfc0b.tar.gz |
gh-100428: Make float documentation more accurate (GH-100437)
Previously, the grammar did not accept `float("10")`.
Also implement mdickinson's suggestion of removing the indirection.
(cherry picked from commit 2e1a9ce9890aba748a518a39d01d1ea6d623d0d9)
Co-authored-by: Shantanu <12621235+hauntsaninja@users.noreply.github.com>
-rw-r--r-- | Doc/library/functions.rst | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst index 97641d1b85..46e77fdb41 100644 --- a/Doc/library/functions.rst +++ b/Doc/library/functions.rst @@ -628,20 +628,23 @@ are always available. They are listed here in alphabetical order. sign may be ``'+'`` or ``'-'``; a ``'+'`` sign has no effect on the value produced. The argument may also be a string representing a NaN (not-a-number), or positive or negative infinity. More precisely, the - input must conform to the following grammar after leading and trailing - whitespace characters are removed: + input must conform to the ``floatvalue`` production rule in the following + grammar, after leading and trailing whitespace characters are removed: .. productionlist:: float sign: "+" | "-" infinity: "Infinity" | "inf" nan: "nan" - numeric_value: `floatnumber` | `infinity` | `nan` - numeric_string: [`sign`] `numeric_value` - - Here ``floatnumber`` is the form of a Python floating-point literal, - described in :ref:`floating`. Case is not significant, so, for example, - "inf", "Inf", "INFINITY", and "iNfINity" are all acceptable spellings for - positive infinity. + digitpart: `digit` (["_"] `digit`)* + number: [`digitpart`] "." `digitpart` | `digitpart` ["."] + exponent: ("e" | "E") ["+" | "-"] `digitpart` + floatnumber: number [`exponent`] + floatvalue: [`sign`] (`floatnumber` | `infinity` | `nan`) + + Here ``digit`` is a Unicode decimal digit (character in the Unicode general + category ``Nd``). Case is not significant, so, for example, "inf", "Inf", + "INFINITY", and "iNfINity" are all acceptable spellings for positive + infinity. Otherwise, if the argument is an integer or a floating point number, a floating point number with the same value (within Python's floating point |