I have been trying to find how to calculate the Floating/Double precision/range numbers -3.402823e38 .. 3.402823e38 and -1.79769313486232e308 .. 1.79769313486232e308.
it's not that easy to calculate. this is because of the way that floats and doubles are implemented. they are both devided in two parts: one part for the base number, and one part for the exponent. i think float is divided 24 bits to base number and 8 bits to exponent. but i'm not sure about this! i'll base my further calculations and assumptions on this fact, though, so these calculations may all be wrong, but they illustrate the correct principles. these specifications could also differ from language to language, even though there are standards which say they shouldn't. but nothing can be taken for granted while programming :p
this means that the base number can be between -8388608 and 8388607, and the exponent can be between -128 and 127.
then when the number is used, the computer thinks like this:
base * 10^exponent
which leads to the biggest possible number being 8388607 * 10 ^ 127, which would be... a lot. but it would contain 120 zeros, cause it can't specify more than 7 more numbers.
the accuracy of the number gets lower as the number grows. this means that your question is badly formatted ;) you can only specify a valid range for a float, if you know what number of correct decimals are needed. if you need the possibility of 2 guaranteed accurate decimals, then float would have a range of -83885 to 83885.