与平台无关的方式获取最大C ++浮点值

时间:2009-09-27 19:18:33

标签: c++ floating-point

获得可以存储在C ++ float中的最大值的最佳平台无关方法是什么?

5 个答案:

答案 0 :(得分:25)

答案 1 :(得分:20)

std::numeric_limits<float>::max()

答案 2 :(得分:9)

std::numeric_limits

// 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;
}

答案 3 :(得分:1)

在C ++中,您可以使用std::numeric_limits类来获取此类信息。

如果has_infinitytrue(现在基本上所有平台都适用),那么您可以使用infinitity获取大于或等于所有其他值的值(NaNs除外)。同样,它的否定将给出负无穷大,并且小于或等于所有其他值(NaNs除外)。

如果你想要有限值,那么你可以使用min / max(它将小于或等于/大于或等于所有其他有限值)。

答案 4 :(得分:-1)

#include <float.h>

然后使用FLT_MAX