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