On Jan 17, 2006, at 3:38 PM, Adam Olsen wrote:
On 1/17/06, Thomas Wouters thomas@xs4all.net wrote:
On Tue, Jan 17, 2006 at 09:23:29AM -0500, Jason Orendorff wrote:
I think a method 5664400.to_base(13) sounds nice.
[And others suggested int-methods too]
I would like to point out that this is almost, but not quite, entirely as inapropriate as using str(). Integers don't have a base. String representations of integers -- and indeed, numbers in general, as the Python tutorial explains in Appendix B -- have a base. Adding such a method to integers (and, I presume, longs) would beg the question why floats, Decimals and complex numbers don't have them.
I dream of a day when str(3.25, base=2) == '11.01'. That is the number a float really represents. It would be so much easier to understand why floats behave the way they do if it were possible to print them in binary.
Actually if you wanted something that closely represents what a floating point number is then you would want to see this::
>>> str(3.25, base=2) '1.101e1' >>> str(0.25, base=2) '1.0e-10'
Printing the bits without an exponent is nearly as misleading as printing them in decimal.
-bob