November 2005
Beginner to intermediate
594 pages
16h 23m
English
You need to know the largest or smallest
representable value for your platform for a numeric type, such as an int or double.
Use the numeric_limits class template in the
<limits> header to get, among other things, the
largest and smallest possible values for a numeric type (see Example 3-9).
Example 3-9. Getting numeric limits
#include <iostream>
#include <limits>
using namespace std;
template<typename T>
void showMinMax() {
cout << "min: " << numeric_limits<T>::min() << endl;
cout << "max: " << numeric_limits<T>::max() << endl;
cout << endl;
}
int main() {
cout << "short:" << endl;
showMinMax<short>();
cout << "int:" << endl;
showMinMax<int>();
cout << "long:" << endl;
showMinMax<long>();
cout << "float:" << endl;
showMinMax<float>();
cout << "double:" << endl;
showMinMax<double>();
cout << "long double:" << endl;
showMinMax<long double>();
cout << "unsigned short:" << endl;
showMinMax<unsigned short>();
cout << "unsigned int:" << endl;
showMinMax<unsigned int>();
cout << "unsigned long:" << endl;
showMinMax<unsigned long>();
}Here’s what I get on Windows XP using Visual C++ 7.1:
short: min: -32768 max: 32767 int: min: -2147483648 max: 2147483647 long: min: -2147483648 max: 2147483647 float: min: 1.17549e-038 max: 3.40282e+038 double: min: 2.22507e-308 max: 1.79769e+308 long double: min: 2.22507e-308 max: 1.79769e+308 unsigned short: min: 0 max: 65535 unsigned int: min: 0 max: 4294967295 unsigned long: ...