Ken Watford <kwatford+pyt...@gmail.com> writes:

>>>>> 1.1 .as_integer_ratio()
>> (2476979795053773, 2251799813685248)
>
> Handy, but if you need the exact representation, my preference is
> float.hex, which seems to be the same as C99's %a format.
[...]
> Granted, it's not as easy for humans to interpret, but it's useful for
> certain things.

Since it's used by both C99 and Java, supporting it is a nice
interoperability feature:
http://download.oracle.com/javase/6/docs/api/java/lang/Double.html#toHexString(double)

In fact, the float output provides educational insight of its own
because it shows rounding effects without the apparent "garbage digits"
syndrome:

>>> 1.1 .hex()
'0x1.199999999999ap+0'

Here it is immediately obvious that the final digit of the infinite
sequence "1.1999..." is rounded from 9 to a.  Printing the number with
any more digits would just reveal zeros, as expected.

Does anyone know why Python doesn't accept hex float literals in source
code?
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to