max / min / smallest float value on Python 2.5

Benjamin Kaplan benjamin.kaplan at case.edu
Sat Feb 6 20:23:16 EST 2010


On Sat, Feb 6, 2010 at 7:52 PM, duncan smith
<buzzard at 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
>



More information about the Python-list mailing list