Velocity Reviews > Floating point minimum and maximum exponent values

# Floating point minimum and maximum exponent values

Marco
Guest
Posts: n/a

 07-16-2013
Hi all, why the maximum and minimum exp values are 1024 and -1021?:

>>> sys.float_info

sys.float_info(max=1.7976931348623157e+308, max_exp=1024,
max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021,
min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16,

The values (in double precision) 0 and 2047 are reserved for zero,
infinity and NaN (in combination with the fraction), so I was expecting
-1022 and 1023...

--
Marco Buttu

Chris Angelico
Guest
Posts: n/a

 07-16-2013
On Tue, Jul 16, 2013 at 9:43 PM, Marco <(E-Mail Removed)> wrote:
> Hi all, why the maximum and minimum exp values are 1024 and -1021?:
>
>>>> sys.float_info

> sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308,
> min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15,
>
> The values (in double precision) 0 and 2047 are reserved for zero, infinity
> and NaN (in combination with the fraction), so I was expecting -1022 and
> 1023...

Piece of extreme oddity, this.

>>> help(sys.float_info)

.... lots of other info ...
| max_exp
| DBL_MAX_EXP -- maximum int e such that radix**(e-1) is representable
|
| min_exp
| DBL_MIN_EXP -- minimum int e such that radix**(e-1) is a
normalized float
....

So it's technically correct. Followup question: Why is it off by one?

ChrisA

Serhiy Storchaka
Guest
Posts: n/a

 07-16-2013
16.07.13 15:04, Chris Angelico написав(ла):
> Piece of extreme oddity, this.
>
>>>> help(sys.float_info)

> ... lots of other info ...
> | max_exp
> | DBL_MAX_EXP -- maximum int e such that radix**(e-1) is representable
> |
> | min_exp
> | DBL_MIN_EXP -- minimum int e such that radix**(e-1) is a
> normalized float
> ...
>
> So it's technically correct. Followup question: Why is it off by one?