Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #83395

Re: Decimals and other numbers

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)

Show all headers | View raw


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 | NextNext in thread | Find similar | Unroll thread


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