Hi Jeff,
The decimal module docstring starts with:
"""
This is an implementation of decimal floating point arithmetic based on
the General Decimal Arithmetic Specification:
http://speleotrove.com/decimal/decarith.html
and IEEE standard 854-1987:
http://en.wikipedia.org/wiki/IEEE_854-1987
Decimal floating point has finite precision with arbitrarily large bounds.
"""
I suggest you to look into these standards.
Victor
On Thu, Sep 30, 2021 at 9:13 AM Jeff Allen <[email protected]> wrote:
>
> Is an implementation of Python free to make up its own answers to division
> and modulus operatons in the case of inf and nan arguments?
>
> The standard library documentation says only that // is "rounded towards
> minus infinity". The language reference says that :
>
> x == (x//y)*y + (x%y),
> the modulus has the same sign as y, and
> division by (either kind of) zero raises ZeroDivisionError .
>
> It's consistent, but it doesn't define the operator over the full range of
> potential arguments. In Python 3.8 and 3.9:
>
> >>> from decimal import Decimal
> >>> Decimal('-3.14') // Decimal('Infinity')
> Decimal('-0')
> >>> -3.14 // float("inf")
> -1.0
> >>> import math
> >>> math.floor(-3.14 / float("inf"))
> 0
>
> I can see sense in all three answers, as possible interpretations of "rounded
> towards minus infinity", but I quite like decimal's. There seem to be no
> regression tests for floor division of floats, and for modulus only with
> finite arguments, perhaps intentionally.
>
> --
>
> Jeff Allen
>
> _______________________________________________
> Python-Dev mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
> https://mail.python.org/mailman3/lists/python-dev.python.org/
> Message archived at
> https://mail.python.org/archives/list/[email protected]/message/BXYBSUMNSP6AAAS6OL23ANSML4IOARVB/
> Code of Conduct: http://python.org/psf/codeofconduct/
--
Night gathers, and now my watch begins. It shall not end until my death.
_______________________________________________
Python-Dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at
https://mail.python.org/archives/list/[email protected]/message/GLFGZ6D2YTFL3HYO4JL4OR6UAANR7JP6/
Code of Conduct: http://python.org/psf/codeofconduct/