【发布时间】:2009-09-27 19:18:32
【问题描述】:
在 C++ 中获得可存储在 float 中的最大值的最佳、独立于平台的方法是什么?
【问题讨论】:
标签: c++ floating-point
在 C++ 中获得可存储在 float 中的最大值的最佳、独立于平台的方法是什么?
【问题讨论】:
标签: c++ floating-point
【讨论】:
std::numeric_limits<float>::max()
【讨论】:
// numeric_limits example
#include <iostream>
#include <limits>
using namespace std;
int main () {
cout << "Minimum value for float: " << numeric_limits<float>::min() << endl;
cout << "Maximum value for float: " << numeric_limits<float>::max() << endl;
cout << "Minimum value for double: " << numeric_limits<double>::min() << endl;
cout << "Maximum value for double: " << numeric_limits<double>::max() << endl;
return 0;
}
【讨论】:
在 C++ 中,您可以使用 std::numeric_limits 类来获取此类信息。
如果has_infinity 是true(现在基本上所有平台都是如此),那么您可以使用infinitity 来获取大于或等于所有其他值(NaN 除外)的值。类似地,它的否定将给出负无穷大,并且小于或等于所有其他值(再次除了 NaN)。
【讨论】:
#include <float.h>
然后使用 FLT_MAX
【讨论】: