3.7. Getting the Minimum and Maximum Values for a Numeric Type
Problem
You need to know the largest or smallest
representable value for your platform for a numeric type, such as an int
or double
.
Solution
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: ...
Get C++ Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.