[Python-ideas] Hexadecimal floating literals

Guido van Rossum guido at python.org
Fri Sep 22 11:37:31 EDT 2017


On Thu, Sep 21, 2017 at 9:20 PM, Nick Coghlan <ncoghlan at gmail.com> wrote:

>     >>> one_tenth = 0x1.0 / 0xA.0
>     >>> two_tenths = 0x2.0 / 0xA.0
>     >>> three_tenths = 0x3.0 / 0xA.0
>     >>> three_tenths == one_tenth + two_tenths
>     False
>

OMG Regardless of whether we introduce this feature, .hex() is the way to
show what's going on here:

>>> 0.1.hex()
'0x1.999999999999ap-4'
>>> 0.2.hex()
'0x1.999999999999ap-3'
>>> 0.3.hex()
'0x1.3333333333333p-2'
>>> (0.1+0.2).hex()
'0x1.3333333333334p-2'
>>>

This shows so clearly that there's 1 bit difference!

-- 
--Guido van Rossum (python.org/~guido <http://python.org/%7Eguido>)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20170922/26c4ba0a/attachment-0001.html>


More information about the Python-ideas mailing list