Why can floating point store more values than integers?

993 views

In a 32-bit floating point, it was said that the highest possible value is 3.4028235 x 10^38. However, when we evaluate this, it will be equal to 340282346638528860000000000000000000000. This whole number would require more than 100 integer bits right? My question is: If that is the case, how come this number requiring more than 100 bits fitted in a 32-bit floating point?

In: 3

23 Answers

Anonymous 0 Comments

It can’t store more values, it’s just that the values it can store are distributed differently. Within 8,388,608 of 0, 32 bit floating point numbers are packed closer than 1 apart. More than 16,777,215 away from 0, they are more than 1 apart.

That ‘more than 1 apart’ is what allows them to store much bigger numbers than integers of the same size. The *difference* between the largest 32 bit floating point number and the second largest has 31 digits when written in decimal so they get *really* spread out.

If you include positive and negative infinity, positive and negative zero, and positive and negative “not a number” all as separate values, there are the same number of 32 bit floating point numbers as there are 32 bit integers.

You are viewing 1 out of 23 answers, click here to view all answers.