Why can floating point store more values than integers?

744 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

As others point out – a 32 bit int can hold 32 bits worth of information. a 32 bit float…can still only hold 32 bits worth of information. Note, information is different from ‘maximum size of the number being stored’.

Floats themselves use a portion of the information (bits) to store the magnitude of the number, and the rest of the information to store the exponent (thinking in scientific notation). In floating point terms, you can’t differentiate between 340282346638528860000000000000000000000 and 340282346638528860000000000000500000000 or even
340282346638528864999000000000000000000
All of the precision after the zeroes start is uncertain. Just like how we can do most day to day math with pi=3.14 and get precise-enough answers, we get different results with more precise 3.1415926…but those extra digits of precision don’t have a significant impact on the result, just the precision of the result. The next biggest number in your example is an increment of 10000000000000000000000 (1E22). It can hold bigger numbers, but not ‘more’ numbers.

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