[issue20533] bug in float arithmetic?

Zachary Ware report at bugs.python.org
Thu Feb 6 21:21:09 CET 2014


Zachary Ware added the comment:

Hi Rihards,

This is not a bug, this is an example of the limitations of binary floating point arithmetic.  See http://docs.python.org/3/tutorial/floatingpoint.html for more information.  For explanation by demonstration, have a look at this:

Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from decimal import Decimal as D
>>> D(11.29)
Decimal('11.28999999999999914734871708787977695465087890625')
>>> D(6.29)
Decimal('6.29000000000000003552713678800500929355621337890625')
>>> D(11.30)
Decimal('11.300000000000000710542735760100185871124267578125')
>>> D(6.30)
Decimal('6.29999999999999982236431605997495353221893310546875')
>>> D(11.291)
Decimal('11.291000000000000369482222595252096652984619140625')
>>> D(6.291)
Decimal('6.291000000000000369482222595252096652984619140625')
>>> 11.29 - 6.29
4.999999999999999
>>> 11.30 - 6.30
5.000000000000001
>>> 11.291 - 6.291
5.0
>>> D(11.29) - D(6.29)
Decimal('4.999999999999999111821580300')
>>> D(11.30) - D(6.30)
Decimal('5.000000000000000888178419700')
>>> D(11.291) - D(6.291)
Decimal('5.000000000000000000000000000')
>>>

For future reference, "bug?" isn't very useful as an issue title :).  The title should be as brief a summary of the possible bug as you can come up with, or at least mention which part(s) of Python are affected.

----------
nosy: +zach.ware
resolution:  -> invalid
stage:  -> committed/rejected
status: open -> closed
title: bug? -> bug in float arithmetic?
type:  -> behavior
versions: +Python 3.3

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue20533>
_______________________________________


More information about the Python-bugs-list mailing list