Skip to content

Commit

Permalink
bpo-45584: Clarify math.trunc documentation (GH-29183)
Browse files Browse the repository at this point in the history
While floor/ceil 's documentation are very precise, `truncate` was not explained. I actually had to search online to understand the difference between `truncate` and `floor` (admittedly, once I remembered that numbers are signed, and that floating numbers actually uses a bit for negation symbol instead of two complement, it became obvious)

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
Co-authored-by: Éric Araujo <merwok@netwok.org>
Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
  • Loading branch information
5 people committed Apr 2, 2022
1 parent 1f80dcd commit ebbdbbf
Showing 1 changed file with 10 additions and 8 deletions.
18 changes: 10 additions & 8 deletions Doc/library/math.rst
Expand Up @@ -32,8 +32,8 @@ Number-theoretic and representation functions
.. function:: ceil(x)

Return the ceiling of *x*, the smallest integer greater than or equal to *x*.
If *x* is not a float, delegates to ``x.__ceil__()``, which should return an
:class:`~numbers.Integral` value.
If *x* is not a float, delegates to :meth:`x.__ceil__ <object.__ceil__>`,
which should return an :class:`~numbers.Integral` value.


.. function:: comb(n, k)
Expand Down Expand Up @@ -77,9 +77,9 @@ Number-theoretic and representation functions

.. function:: floor(x)

Return the floor of *x*, the largest integer less than or equal to *x*.
If *x* is not a float, delegates to ``x.__floor__()``, which should return an
:class:`~numbers.Integral` value.
Return the floor of *x*, the largest integer less than or equal to *x*. If
*x* is not a float, delegates to :meth:`x.__floor__ <object.__floor__>`, which
should return an :class:`~numbers.Integral` value.


.. function:: fmod(x, y)
Expand Down Expand Up @@ -298,9 +298,11 @@ Number-theoretic and representation functions

.. function:: trunc(x)

Return the :class:`~numbers.Real` value *x* truncated to an
:class:`~numbers.Integral` (usually an integer). Delegates to
:meth:`x.__trunc__() <object.__trunc__>`.
Return *x* with the fractional part
removed, leaving the integer part. This rounds toward 0: ``trunc()`` is
equivalent to :func:`floor` for positive *x*, and equivalent to :func:`ceil`
for negative *x*. If *x* is not a float, delegates to :meth:`x.__trunc__
<object.__trunc__>`, which should return an :class:`~numbers.Integral` value.

.. function:: ulp(x)

Expand Down

0 comments on commit ebbdbbf

Please sign in to comment.