On Sat, Feb 6, 2010 at 7:52 PM, duncan smith <buzz...@urubu.freeserve.co.uk> wrote: > Hello, > I'm trying to find a clean and reliable way of uncovering information > about 'extremal' values for floats on versions of Python earlier than 2.6 > (just 2.5 actually). I don't want to add a dependence on 3rd party modules > just for this purpose. e.g. For the smallest positive float I'm using, > > > import platform > if platform.architecture()[0].startswith('64'): > TINY = 2.2250738585072014e-308 > else: > TINY = 1.1754943508222875e-38 > > > where I've extracted the values for TINY from numpy in IDLE, > > >>>> float(numpy.finfo(numpy.float32).tiny) > 1.1754943508222875e-38 >>>> float(numpy.finfo(numpy.float64).tiny) > 2.2250738585072014e-308 >>>> > > > I'm not 100% sure how reliable this will be across platforms. Any ideas > about the cleanest, reliable way of uncovering this type of information? (I > can always invoke numpy, or use Python 2.6, on my home machine and hardcode > the retrieved values, but I need the code to run on 2.5 without 3rd part > dependencies.) Cheers. > > Duncan
>>> import platform >>> platform.architecture() ('32bit', '') >>> tiny = 2.22e-308 >>> tiny 2.2200000000000001e-308 float32 vs. float64 has nothing to do with a 32-bit vs. a 64-bit platform. It's single precision floating-point (C float) vs. double-precision floating point (C double). It's used in numpy because numpy optimizes everything like crazy. Python always uses doubles. >>> import numpy >>> numpy.double <type 'numpy.float64'> > -- > http://mail.python.org/mailman/listinfo/python-list > -- http://mail.python.org/mailman/listinfo/python-list