John Nagle wrote:
aditya wrote:
On Mar 30, 10:49 am, Raymond Hettinger <pyt...@rcn.com> wrote:
On Mar 30, 8:13 am, aditya <bluemangrou...@gmail.com> wrote:

To get the decimal representation of a binary number, I can just do
this:
int('11',2) # returns 3
But decimal binary numbers throw a ValueError:
int('1.1',2) # should return 1.5, throws error instead.
Is this by design? It seems to me that this is not the correct
behavior.
The int() constructor returns integers.
So, look to float() for non-integral values.
Binary representation isn't supported yet,
but we do have hex:

    >>> float.fromhex('1.8')
    1.5

Raymond

That looks very elegant, thanks!

   Hex floats are useful because you can get a string representation
of the exact value of a binary floating point number.  It should
always be the case that

     float.fromhex(float.hex(x)) == x

That's not always true of decimal representations, due to rounding problems.

Floats have a limited length, unlike ints which are virtually unlimited.

Long discussion of this here: "http://bugs.python.org/issue1580";

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to