On 30/09/12 10:43, Jan Kaliszewski wrote:
Hello,
In http://docs.python.org/release/3.2.3/reference/expressions.html#in we
read: "[...] This can create the illusion of non-transitivity between
supported cross-type comparisons and unsupported comparisons. For example,
Decimal(2) == 2 and 2 == float(2) but Decimal(2) != float(2)."
[...]
Is it a bug in the docs or in Python itself? (I checked that in 3.2, but it may
be true for 3.3 as well)
Documentation bug. It used to be the case that Decimal and float did not
compare equal:
steve@runes:~$ python3.1
Python 3.1.3 (r313:86834, Nov 28 2010, 11:28:10)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
py> from decimal import Decimal
py> Decimal(2) == 2.0
False
but starting in 3.2 they do. But of course there are traps for the unwary,
due to binary floats, e.g. Decimal("0.1") != 0.1
--
Steven
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com