Most of your languages and database products will use IEEE Standard 754 singles and doubles. In C and C++, you can use single extended formats and double extended formats, but these are architecture dependent formats. Your high-level, platform neutral languages and databases probably avoid exposing these.
According to IEEE Standard 754, you ignore that a double can store Infinity and -Infinity and NaN then:
- max normal number: 1.7976931348623157e+308
- min positive normal number: 2.2250738585072014e-308
- max subnormal number: 2.2250738585072009e-308
- min positive subnormal number: 4.9406564584124654e-324
For x86 double extended format:
- max normal 1.18973149535723176505e+4932
- min positive normal: 3.36210314311209350626e-4932
- max subnormal: 3.36210314311209350608e-4932
- min positive subnormal: 3.64519953188247460253e-4951
It works out to be a double has:
- Significant Digits (Binary): 53
- Smallest Positive Normal Number: 2.225... 10-308
- Largest Positive Number 1.797... 10308
- Significant Digits (Decimal): 15-17
And a double extended (x86) has:
- Significant Digits (Binary): 64
- Smallest Positive Normal Number: 3.362... 10-4932
- Largest Positive Number 1.189... 104932
- Significant Digits (Decimal): 18-21