You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Document the meaning of values for sys.float_info.rounds #85988
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
assignee=Noneclosed_at=Nonecreated_at=<Date2020-09-21.00:38:26.708>labels= ['easy', '3.10', 'docs']
title='Document the meaning of values for sys.float_info.rounds'updated_at=<Date2020-10-18.09:13:18.609>user='https://github.com/rhettinger'
The current docs unnecessarily refer readers to the C99 standard. "integer constant representing the rounding mode used for arithmetic operations. This reflects the value of the system FLT_ROUNDS macro at interpreter startup time. See section 5.2.4.2.2 of the C99 standard for an explanation of the possible values and their meanings."
The docs should quote the standard, "The rounding mode for floating-point addition is characterized by the implementation defined value of FLT_ROUNDS: -1 indeterminable, 0 toward zero, 1 to nearest, 2 toward positive infinity, 3 toward negative infinity. All other values for FLT_ROUNDS characterize implementation-defined rounding."
behavior.
changed the title [-]Document the mean of values for sys.float_info.rounds[/-][+]Document the meaning of values for sys.float_info.rounds[/+]on Sep 25, 2020
changed the title [-]Document the mean of values for sys.float_info.rounds[/-][+]Document the meaning of values for sys.float_info.rounds[/+]on Sep 25, 2020
Also, we should document the meaning of the other fields. Several of them are not self explanatory:
min_10_exp = -307
does not mean that 2.3e-308 isn't normalized
does mean that 10**-307 is normalized and 10**-308 isn't
min_exp = -1021
does not mean that 2**-1021 is the lowest normalized value
does mean ldexp(0.5, -1021) == float_info.min
decimal_dig=15
does not mean digits required to specify every unique float
does mean, "number of decimal digits, q, such that any
floating-point number with q decimal digits can be rounded
into a floating-point number with p radix b digits and back
again without change to the q decimal digits"
Python does not set the meaning and the value of these fields itself. It exposes C constants. Should we just copy definitions from corresponding C or floating-point standards?
Activity
rhettinger commentedon Sep 21, 2020
The current docs unnecessarily refer readers to the C99 standard. "integer constant representing the rounding mode used for arithmetic operations. This reflects the value of the system FLT_ROUNDS macro at interpreter startup time. See section 5.2.4.2.2 of the C99 standard for an explanation of the possible values and their meanings."
The docs should quote the standard, "The rounding mode for floating-point addition is characterized by the implementation defined value of FLT_ROUNDS: -1 indeterminable, 0 toward zero, 1 to nearest, 2 toward positive infinity, 3 toward negative infinity. All other values for FLT_ROUNDS characterize implementation-defined rounding."
behavior.
[-]Document the mean of values for sys.float_info.rounds[/-][+]Document the meaning of values for sys.float_info.rounds[/+][-]Document the mean of values for sys.float_info.rounds[/-][+]Document the meaning of values for sys.float_info.rounds[/+]rhettinger commentedon Oct 18, 2020
Also, we should document the meaning of the other fields. Several of them are not self explanatory:
min_10_exp = -307
does not mean that 2.3e-308 isn't normalized
does mean that 10**-307 is normalized and 10**-308 isn't
min_exp = -1021
does not mean that 2**-1021 is the lowest normalized value
does mean ldexp(0.5, -1021) == float_info.min
does not mean digits required to specify every unique float
does mean, "number of decimal digits, q, such that any
floating-point number with q decimal digits can be rounded
into a floating-point number with p radix b digits and back
again without change to the q decimal digits"
serhiy-storchaka commentedon Oct 18, 2020
Python does not set the meaning and the value of these fields itself. It exposes C constants. Should we just copy definitions from corresponding C or floating-point standards?
serhiy-storchaka commentedon Oct 18, 2020
Oh, seems it was what Raymond proposed initially.
rhettinger commentedon Oct 18, 2020
Here's a link: http://c0x.coding-guidelines.com/5.2.4.2.2.html
tbwolfe commentedon Nov 22, 2022
PR submitted. Please let me know if any changes are required.
gh-85988: Change documentation for sys.float_info.rounds (GH-99675)
mdickinson commentedon Nov 27, 2022
Done in #99675. Thanks, @tbwolfe.
pythongh-85988: Change documentation for sys.float_info.rounds (pytho…
pythongh-85988: Change documentation for sys.float_info.rounds (pytho…