Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #83395
| Date | 2015-01-08 21:43 -0500 |
|---|---|
| From | Dave Angel <davea@davea.name> |
| Subject | Re: Decimals and other numbers |
| References | <CABicbJK-5izGtet8BsS1Yqx+6AHMX7gLU4zYjjt5jULJXNVipA@mail.gmail.com> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.17499.1420771441.18130.python-list@python.org> (permalink) |
On 01/08/2015 09:33 PM, Devin Jeanpierre wrote:
> I noticed some very PHP-ish behavior today:
>
>>>> import decimal
>>>> x = 0
>>>> y = float(x)
>>>> z = decimal.Decimal(x)
>>>> x == y == z == x
> True
>>>> x ** x
> 1
>>>> y**y
> 1.0
>>>> z**z
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> File "/usr/lib/python2.7/decimal.py", line 2216, in __pow__
> return context._raise_error(InvalidOperation, '0 ** 0')
> File "/usr/lib/python2.7/decimal.py", line 3872, in _raise_error
> raise error(explanation)
> decimal.InvalidOperation: 0 ** 0
>
>
> I'd file a bug report but I'm anticipating some rational (heh)
> explanation. Any ideas?
>
> Python 3.4 also raises this exception, but the error message is less
> informative. ("decimal.InvalidOperation: [<class
> 'decimal.InvalidOperation'>]").
What you don't say is which behavior you actually expected. Since 0**0
is undefined mathematically, I'd expect either an exception or a NAN result.
--
DaveA
Back to comp.lang.python | Previous | Next — Next in thread | Find similar | Unroll thread
Re: Decimals and other numbers Dave Angel <davea@davea.name> - 2015-01-08 21:43 -0500 Re: Decimals and other numbers Marko Rauhamaa <marko@pacujo.net> - 2015-01-09 08:45 +0200
csiph-web