什么是C++中的DBL_MAX?

Chr*_*oph 8 c++ floating-point max

我正在查看我在网上找到的一个程序,我发现作者在少数情况下使用了DBL_MAX.我不确定它是什么,所以我研究了一下,但没有太多解释它是什么以及它用于什么.

任何人都可以解释它是什么以及为什么要使用它?

代码中使用的一些示例是:

localT.maxTemp = -DBL_MAX;
double avg = -DBL_MAX;
Run Code Online (Sandbox Code Playgroud)

Vla*_*cow 29

正如C++或C DBL_MAX中标题<cfloat>中定义的其他人所说的那样,是<float.h>最大可表示有限浮点(双)数的值

在C++中,您可以使用std::numeric_limits标头中定义的类获取相同的值<limits>

std::numeric_limits<double>::max()
Run Code Online (Sandbox Code Playgroud)

以下是使用这两种方法的示例

#include <iostream>
#include <cfloat>
#include <limits>

int main() 
{
    std::cout << DBL_MAX << std::endl;
    std::cout << std::numeric_limits<double>::max() << std::endl;


    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在www.ideone.com(在线C++编译器)输出是

1.79769e+308
1.79769e+308
Run Code Online (Sandbox Code Playgroud)


4pi*_*ie0 6

它是在float.h或 中定义的常量<cfloat>。该头文件描述了所使用的特定系统和编译器实现的浮点类型的特征。

DBL_MAX 是最大有限可表示的浮点数。

http://en.cppreference.com/w/cpp/types/climits